我有一个项目列表,每行都有一个复选框。每个复选框都有一个唯一的名称,如“65”或“77”,对应于数据库中的item_ID。我希望能够
DELETE FROM $table WHERE "name of checkbox"=item_ID AND "checkbox is checked"
基本上删除与该表行中勾选复选框对应的任何数据条目。 复选框按原样构造并显示在每一行的末尾:
$field=mysql_fetch_assoc($result);
$ID=$field['item_ID'];
<input name='".$ID."' type='checkbox' value='yes'>
答案 0 :(得分:0)
将其名称设置为$ ID [],并在服务器端对$ _REQUEST [$ ID]执行foreach循环。
答案 1 :(得分:0)
因为在Form中只有复选框是通过POST发布的,所以你需要通过一个小技巧解决这个问题。对于每个条目,在您的html代码中添加一个隐藏字段,如
<input type='hidden' name='ids[]' value='".$ID."'>
<input name='checkbox_".$ID."' type='checkbox' value='yes'>
将这些内容发布到您的服务器后,您应该拥有包含已显示给您的用户的所有行的数组$ _POST ['ids']。所以迭代它并检查是否存在相应的复选框索引:
foreach($_POST['ids'] as $checkId) {
if(array_key_exists('checkbox_'.$id, $_POST) {
// delete the entry
$sql = 'delete from your_table where id = "'.$id.';"';
// execute sql
}
}
答案 2 :(得分:0)
<form>
<input type="checkbox" name="checkbox_$iID">
...
</form>
foreach ($_POST as $post) {
$temp=explode('_',$post);
if ($temp[0]=="checkbox") {delete $temp[1]....}
}