0

所以我束手无策。在更复杂的问题中,这是让我感到困惑的问题。我不确定这是 HTML 问题还是 PHP 问题了。我已经尝试了我能想到的一切,但一无所获。好的,所以我需要从动态创建的表中提取一个特定的名称,确切地说是武器名称。因此,用户单击“删除武器”按钮,该武器将被删除。查询很好;我的问题是得到这个名字。如果只有一种武器并且这不是动态的,我只会选择特定的字段名称。那是 PHP 101。这是从中提取的循环:

while ( $weapons = mysql_fetch_array($data)) {
            echo '
              <table width="780" border="1">
                 <tr>
                    <td colspan="2">weapon</td>
                    <td>AttackBonus</td>
                    <td>crit</td>
                </tr>
                <tr>
                    <td colspan="2">

                        <input type="text" name="weaponName'.$i.'" id="weaponName'.$i.'"  size="10" value="'.$weapons["weaponsName"].'" />
                        <input type="hidden" name="weaponName" value="'.$weapons["weaponsName"].'"/>
                    </td>
                    <td>
                        <input type="text" name="attackBonus'.$i.'" id="attackBonus'.$i.'"  size="10" value='.$weapons["weaponsAttackBonus"].' />
                    </td>
                    <td>
                        <input type="text" name="crit'.$i.'" id="crit'.$i.'"  size="10" value='.$weapons["weaponsCritical"].' />
                    </td>
                </tr>
                <tr>
                    <td>type</td>
                    <td>range</td>
                    <td>ammunition</td>
                    <td>damage</td>
                </tr>
                <tr>
                    <td>
                        <input type="text" name="type'.$i.'" id="type'.$i.'"  size="10" value='.$weapons["weaponsType"].' />
                    </td>
                    <td>
                        <input type="text" name="range'.$i.'" id="range'.$i.'"  size="10" value='.$weapons["weaponsRange"].' />
                    </td>
                    <td>
                        <input type="text" name="ammunition'.$i.'" id="ammunition'.$i.'"  size="10" value='.$weapons["weaponsAmmunition"].' />
                    </td>
                    <td>
                        <input type="text" name="damage'.$i.'" id="damage'.$i.'"  size="10" value='.$weapons["weaponsDamaage"].' />
                    </td>
                </tr>
                <tr>
                    <td colspan="4">
                        <input type="submit" formaction="include/deleteweapon.php"  formmethod="post" value="Delete Weapon"/>
                    </td>               
                </tr>
                </table>

    ';
        $i++;}

这可能是一件小事,这一直是我的问题。我尝试了几个不同的 while 循环。我已经尝试过使用 issets($_post[“weaponName0”] 等的 if 语句。我只是不知道。

编辑:所以我不太擅长解释我需要什么。显示信息的循环很好,是的,按钮需要在那里。

(我没有足够的代表来上传图片,所以这里是链接) http://farm9.staticflickr.com/8391/8468562067_0cd4158e35_b.jpg

这就是它的样子。我无法获得武器名称的值。这里的输出很好,当我需要删除那个特定的武器时,我遇到了问题。我需要那个名字。这就是为什么我不确定它是 HTML 还是 PHP。该按钮必须被迭代或有什么意义?mySQL 很好,这是最简单的部分。

我知道我能做什么,但在我看来这是糟糕的设计,我想我也会遇到同样的问题。我可以为这些字段添加一个复选框以删除,并且在您尝试保存字符后它将被删除。

4

3 回答 3

0

您正在使用 mysql_fetch_array 而不是 mysql_fetch_assoc,因此您应该使用字段索引,如下所示:

 $weapons["weaponsName"] // This is wrong


 $weapons[0] // This is the right approach

PS:你不应该使用 mysql 扩展......去 mysqli 或 PDO ;)

萨卢多斯。

于 2013-02-12T20:11:35.113 回答
0

看起来您对于循环的每次迭代都有一个删除按钮。您应该能够设置要删除的名称,就像将其设置为标签一样。

<input type=hidden name=weaponsName value=".$weapons['weaponsName'].">
<input type=submit ...>

$weaponsName = $_POST['weaponsName'];
于 2013-02-12T20:10:08.260 回答
0

我不是 100% 确定我理解您的问题,我相信您的 HTML,您应该执行以下操作:

<input type="hidden" name="weaponName[<?php print $i; ?>]" value="The Name" />

在您的 PHP 中,您应该能够访问给定索引的名称:

$index = 1; // Some arbitrary index
$weapon_name = $_POST['weaponName'][$index];

或者,我会做什么:在表单的操作中,指定一个 id:

<form action="delete.php?id=<?php print $weaponId; ?>" action="post">

然后在您的 PHP 中,您可以执行以下操作:

$id = $_GET['id']; // This is the weapon ID

然后,您可以使用 ID 直接从数据库中提取名称。

于 2013-02-12T20:05:53.200 回答