我在PHP中创建了两个表单,如下所示
echo '<form name="delete" action="?page=deletetable" method="POST" autocomplete="off">';
echo '<input type=submit value="Delete" name="'.$row['TableName'].'">';
echo "</form>";
echo '<form name="assign" action="?page=assign" method="POST" autocomplete="off">';
echo '<select name="user">';
$sql = mysqli_query($con,"SELECT * FROM users WHERE hasCustom = 0");
while ($row = mysqli_fetch_array($sql)){
echo "<option value=\"".$row['user_name']. "\">" . $row['user_name'] . "</option>";
}
echo "</select>";
echo '<input type="submit" value="Assign" name="'.$row['TableName'].'">';
echo "</form>";
这看起来就像下面的html代码
<form name="delete" action="?page=deletetable" method="POST" autocomplete="off">
<input type=submit value="Delete" name="rates_test">
</form>
<form name="assign" action="?page=assign" method="POST" autocomplete="off">
<select name="user">
<option value="zac">zac</option>
<option value="testadmin">testadmin</option>
<option value="tonyd">tonyd</option>
</select>
<input type="submit" value="Assign" name="">
</form>
正如您在上一个提交按钮中看到的那样,名称标签为空,但在第一种形式中,名称标签是正确的,即name="rates_test"
两个表单都使用相同的PHP来获取此值,因此我无法理解为什么一个工作而另一个不工作。
答案 0 :(得分:2)
你正在使用'while'循环来重置$ row。我的猜测是在该循环之后$ row中不存在['TableName']。
尝试为第一个$行和while循环使用单独的变量名。
答案 1 :(得分:1)
使用以下行:
while($ row = mysqli_fetch_array($ sql)){
你覆盖变量$ row,尝试为while循环使用不同的变量,除非是这样。
答案 2 :(得分:0)
$row
变量将再次获取新值。
尝试使用($row1 = mysqli_fetch_array($sql))
代替$row = mysqli_fetch_array($sql))