所以我正在学习PHP和MySQL,知道HTML和JS。我正在为自己制作一个小笔记的webapp,并偶然发现了一个问题。我使用foreach和echo生成div。注释存储在数据库中,并使用" SELECT" -mysql进行请求。删除按钮(用作按钮但是文本)连接到也生成的表单;每个笔记的一种形式。
echo "<form method='post' id='" . $row['id'] . "form" . "' action='handler.php'>";
echo "<input type='hidden' name='deleteRecord_button'";
echo "<input type='hidden' name='" . $row['id'] ."'>";
echo "</form>";
当我使用删除按钮提交表单时,表单作为POST发送到handler.php文件,但是我似乎找不到发送&#34; id&#34的好方法;这张纸条让我可以 使用mysqli&#34; DELETE FROM notes将数据从数据库中删除WHERE id =注意ID ...
很抱歉,如果这没有意义,但我想知道是否有一个很好的解决方案,我如何将notes.php(下图)中的id发送到handler.php文件,我可以处理和删除来自数据库的说明。我更喜欢使用&#34; plain&#34; JS,PHP,但我也在使用jQuery。
答案 0 :(得分:2)
更改此行...
echo "<input type='hidden' name='" . $row['id'] ."'>";
到
echo "<input type='hidden' name='id' value='" . $row['id'] ."'>";
答案 1 :(得分:0)
由于您的表单字段名称包含ID,因此您需要这样的内容:
$formIDs = preg_grep('/^\d+form$/', $_POST);
foreach ($formIDs as $id_string) {
$id = substr($id_string, 0, -4);
... do something with the ID ...
}
e.g ..
<input type="hidden" name="42form" ?>
制造
$formIDs = array('42form');
答案 2 :(得分:0)
您没有指定'deleteRecord_button'输入的值。如果你像我一样添加它,它就会起作用。
<form method="POST" id="<?php echo $row['id'] ?>form" action="handler.php">
<input type="hidden" name="deleteRecord_button" value="<?php $row['id']; ?>"/>
</form>
现在,您可以根据需要忽略提示。
您可以使用GET方法,而不是使用表单将值发布到另一个页面。这可以用更少的代码完成。
<a href="handler.php?delete=<?php echo $row['id']; ?>">Delete</a>
如果你在handler.php中捕获GET,并在必要时检查是否有用户登录,然后执行database命令。如果这样做,请确保删除变量是否为数字。您可以使用is_numeric。