HTML表单提交按钮名称标记为空

时间:2013-08-29 09:41:10

标签: php html forms

我在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来获取此值,因此我无法理解为什么一个工作而另一个不工作。

3 个答案:

答案 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))