PHP无法识别<input>提交按钮,点击删除无响应问题排查
问题原因及修复方案
你的代码里有几个明显的错误导致PHP无法识别delete提交按钮,我帮你逐一拆解:
1. 表单标签未正确闭合
你最后一行输出表单闭合标签时少写了右尖括号:
echo "</form";
应该改成:
echo "</form>";
未闭合的form标签会导致浏览器无法正确解析表单结构,提交请求自然无法被PHP正确捕获。
2. 错误的属性位置
你在input标签里错误添加了method='post'属性:
echo "<td>" ."<input type='submit' name='delete' value='Delete' method='post' >" . "</td>";
method是<form>标签的专属属性,<input>标签并不支持这个属性,虽然这不会直接导致提交失效,但属于语法错误,建议移除。
3. 额外优化:为删除操作携带目标ID(可选但必要)
当前代码里的删除按钮没有携带对应书籍的ID,就算PHP能识别到提交,也不知道要删除哪条数据。建议给每个提交按钮搭配隐藏字段,或者用按钮的value存储ID:
比如改成这样:
echo "<td> <input type='hidden' name='book_id' value='{$row['id']}'> <input type='submit' name='delete' value='Delete'> </td>";
之后PHP里可以通过$_POST['book_id']定位要删除的记录。
修正后的完整代码示例
// 执行查询并获取数据后运行 echo "<form method='POST'> <table border='1'> <tr> <th>Books</th> <th>Action</th> </tr>"; foreach($result as $row){ echo "<tr> <td>" . $row['nameOfBook'] . "</td> <td> <input type='hidden' name='book_id' value='{$row['id']}'> <input type='submit' name='delete' value='Delete'> </td> </tr>"; } echo "</table> </form>"; if(isset($_POST['delete'])){ // 这里可以获取book_id进行删除操作 $bookId = $_POST['book_id']; die("删除按钮已被触发,目标书籍ID:{$bookId}"); }
这样修改后,点击删除按钮应该就能被PHP的isset($_POST['delete'])捕获到了。
内容的提问来源于stack exchange,提问作者Second View
相关产品推荐
相关产品推荐

