0

私が持っているこのリストを適切に処理できないようです。行数が10〜200のx個のテーブルがあります。各行はアイテムを表し、1つ以上のチェックボックスを選択すると、それらをループし、必要に応じて行を更新/追加/削除します。どうすればこれを行うことができますか?

現在、id []の非表示フィールドと、own[]とspecial[]の2つのチェックボックスがあります。IDは明らかに一意のアイテムIDであり、2つのチェックボックスは、通常バージョンまたは特別バージョン(またはなし、あるいはその両方)を所有しているかどうかを表します。それらをループすると、すべてのIDがエコーされますが、2つのチェックボックスの値をそれらに接続できないようです。すべてのIDがエコーされ、チェックボックスが適切にループされないため、単純なforループは機能しません。

私はPHPにある程度精通しているので、あなたが持っているもので私を襲ってください!

4

2 に答える 2

1

二次元配列を作成するようにしてください(私がよく理解している場合)。隠しフィールドを忘れることもできます:

checkboxes[<?= $id ?>][own]およびcheckboxes[<?= $id ?>][special]。あなたはphpでそのような配列を持っているでしょう:

$_POST['checkboxes'] => array(
                         1 => array(
                              'own' => 'on'
                         ),
                         3 => array(
                              'own' => 'on',
                              'special' => 'on
                         )
                    );

ここでは、ID「1」の「所有」チェックボックスと、ID「3」の「所有」および「特別」チェックボックスをオンにしました。

于 2013-03-26T10:06:13.060 に答える
0

最終製品:

<input type="checkbox" name="product[<?php echo $product['id']; ?>][own]" /> <!-- this is row 20 of the database -->
<input type="checkbox" name="product[<?php echo $product['id']; ?>][own]" /> <!-- row 64 -->
<input type="checkbox" name="product[<?php echo $product['id']; ?>][special]" /> <!-- row 127 -->

送信すると、このコードは次のようになります。

foreach($_POST['product'] as $id => $p) {
    echo "ID: ".$id." - Own: ".$p['own']." - Special: ".$p['special']."<br />";
}

この結果が生成されます:

ID: 20 - Own: on - Special:
ID: 64 - Own: on - Special: 
ID: 127 - Own: - Special: on
于 2013-03-26T22:04:26.490 に答える