所以我在我的智慧结束。在更复杂的问题中,这是刚刚困扰我的问题。我不确定它是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循环。我试过ifset语句($ _ post [“weaponName0”]等等。我只是不知道。
编辑: 所以我不太擅长解释我的需要。显示信息的循环很好,是的,按钮需要在那里。
(我没有足够的代表来加载图片,所以这里是链接) http://farm9.staticflickr.com/8391/8468562067_0cd4158e35_b.jpg
这就是它的样子。我无法获得武器名称的价值。输出在这里很好,当我需要删除那个特定武器时,我遇到了问题。我需要那个名字。这就是为什么我不确定它是HTML还是PHP。按钮必须重复或点什么? mySQL很好,这很容易。
我知道我能做些什么,但在我看来这是糟糕的设计,我想我会遇到同样的问题。我可以为这些字段添加一个复选框以便删除,并且在您尝试保存字符后它将被删除。
答案 0 :(得分: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直接从数据库中提取名称。
答案 1 :(得分:0)
看起来你对循环的每次迭代都有一个删除按钮。您应该能够像设置标签一样设置删除名称。
<input type=hidden name=weaponsName value=".$weapons['weaponsName'].">
<input type=submit ...>
$weaponsName = $_POST['weaponsName'];
答案 2 :(得分:0)
您正在使用mysql_fetch_array而不是mysql_fetch_assoc,因此您应该使用字段索引,如下所示:
$weapons["weaponsName"] // This is wrong
$weapons[0] // This is the right approach
PS:您不应该使用mysql扩展....转到mysqli或PDO;)
Saludos。