0

我有一个项目列表,每一行都有一个复选框。每个复选框都有一个唯一的名称,例如“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'>
4

3 回答 3

0

将它们的名称设置为 $ID[],并在服务器端对 $_REQUEST[$ID] 执行 foreach 循环。

于 2013-02-24T14:58:43.720 回答
0

因为在表单中只有复选框通过 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
    }
}
于 2013-02-24T14:59:40.423 回答
0

另一个技巧:

<form>
<input type="checkbox" name="checkbox_$iID">
...
</form>

foreach ($_POST as $post) {
$temp=explode('_',$post);
if ($temp[0]=="checkbox") {delete $temp[1]....}
}
于 2013-02-24T15:07:41.293 回答