好的人,
我正在尝试显示数据库表的内容以及REMOVE或PUSH按钮。 REMOVE按钮将从数据库中删除所述项目。 PUSH按钮将项目推送到另一个数据库,然后通过将变量设置为true来标记该项目。
我有连接和while循环回显数据库中的每个项目以及REMOVE按钮和PUSH按钮。回声看起来像这样:
echo '<form method='post' name='$ID' action='$_PHP_SELF'>
<tr>
<td width='5%' align='center'>$ID</td>
<td width='75%'>$content</td>
<td width='10%' align='center'><input type='submit' name='remove' id='remove' value='REMOVE'></td>
<td width='10%' align='center'><input type='submit' name='push' id='push' value='PUSH'></td>
</tr>
</form>';
我遇到的问题是如何设置一个简单的提交代码,该代码将检查表单并推送或删除该特定项目。如果/ Else或Switch语句不起作用,因为我期待数十个数据库条目,并且我希望提交代码本身也是动态的。
我开始时:
if(isset($_POST['push'])){
echo "PUSH ".$ID." TO DATABASE";
}
if(isset($_POST['remove'])){
echo "REMOVE ".$ID." FROM DATABASE";
}
但这两个都只返回最后一个$ ID变量。
提前感谢。
答案 0 :(得分:2)
使用自己的两个按钮,将每个相关的行设置为自己的形式。他们都可以提交到同一页面。此外,将ID保存在隐藏字段中(并验证服务器端),而不是表单名称。
答案 1 :(得分:2)
一个简单的解决方案是将HTML输出更改为两个表单,每个表单一个提交。你可以保持你的PHP完全一样。
编辑:为了动态获取按下按钮的ID,然后添加一个带有ID的隐藏数据字段,如下所示:
<tr>
<td width='5%' align='center'>$ID</td>
<td width='75%'>$content</td>
<td width='10%' align='center'>
<form method='post' action='$_PHP_SELF'>
<input type='hidden' value='$ID' name='id'>
<input type='submit' name='remove' id='remove' value='REMOVE'>
</form>
</td>
<td width='10%' align='center'>
<form method='post' name='$ID' action='$_PHP_SELF'>
<input type='hidden' value='$ID' name='id'>
<input type='submit' name='push' id='push' value='PUSH'>
</form>
</td>
</tr>
然后,您的PHP将是:
$ID=mysql_real_escape_string($_POST['id']); //Encapsulate in this function to prevent bad IDs causing SQL injections.
if(isset($_POST['push'])){
echo "PUSH ".$ID." TO DATABASE";
}
if(isset($_POST['remove'])){
echo "REMOVE ".$ID." FROM DATABASE";
}
答案 2 :(得分:0)
按照本教程创建复选框系统和php处理器。 Php Checkboxes
你可以通过以下两种方式之一做到这一点。如果您希望用户能够一次删除多个项目,您可以这样做。
让用户通过复选框选择任意数量的行。然后点击“REMOVE”或“PUSH”按钮,将其发送到另一页,每行都有进程。
另一种方法是在每行旁边有一个REMOVE和PUSH按钮,一次删除或推送一行。我会推荐第一种方法。如果您按照该指南进行操作非常直接。