0

アイテムのリストがあり、各行にはチェックボックスがあります。各チェックボックスには、データベースの item_ID に対応する「65」や「77」などの一意の名前があります。できるようになりたい

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 に答える