表单数据在第二个POST中被覆盖?

我在网页中嵌入了两种表单,用于编辑mySQL数据库。第一种形式(“ add.php”)允许用户输入名称并将其添加到数据库。然后,在重新加载网页时,将根据数据库中的所有数据构建表。第二种形式允许用户通过单击表中与该行相对应的单元格来从数据库中删除。

这是index.php文件的相关部分:


<table>
    <tbody>
        <?php
            $con = mysqli_connect('localhost','[username]','[pwd]','tablename');
            $results = mysqli_query($con,"SELECT name FROM tablename");
            while ($row = mysqli_fetch_assoc($results)) {
                echo "<tr class=\"row100 body\">
                    <td class=\"cell100 column1\">".$row['name']."</td>
                    <td class=\"cell100 column2\">
                        <form id=\"delete\" action=\"delete.php\" method=\"post\">
                            <input form=\"delete\" type=\"hidden\" name=\"dname\" value=\"".$row['name']."\" />
                            <input form=\"delete\" type=\"submit\" value=\"X\" />
                        </form>
                    </td>";
            }
        ?>
        </tr>
        <tr>
            <td class="cell100 column1">
                <form id="add" action="insert.php" method="post">
                    <input form="add" type="text" name="name" value="Name" />
                </form>
            </td>
            <td class="cell100 column2"><input form="add" type="submit" value="Add to list" /></td>
        </tr>
    </tbody>
</table>

问题在于,无论我单击要删除的哪一行,它总是会删除最近添加的行。当我检查行时,正确的值存储在删除表单中;但是,回显delete.php(dname)接收到的值会显示错误的名称。

任何想法在这里可能出什么问题吗?有没有比将要删除的名称传递到表中的字段以将其存储为删除表单更简单的方法呢? 谢谢。

zhongten 回答:表单数据在第二个POST中被覆盖?

弄清楚了。我没有使用全新的表格和POST,而是将删除表格替换为

<a href=\"delete.php?dname=".$row['name']."\">X</a>

,然后使用delete而不是POST的delete.php代码。

本文链接:https://www.f2er.com/3087590.html

大家都在问