0

テーブルをループして、製品に一致するチェック ボックスのリストを返すことができるようになりました。私の問題は、それらが選択された後にそれらをループして、特定の製品のチェック/チェック解除として返す適切な方法を理解できないことです。MySQL が関係していると思いますが、その部分は問題ではありません。データベースに挿入する方法や更新する方法を知っています...製品がドロップダウンから選択されたときに、チェックボックスに入力できるようにする必要があります。

選択するすべてのカテゴリを最初に表示するために使用しているコードは次のとおりです...

<ul class="categories">
  <?php 
    $query = "SELECT * FROM products";
    $result = mysql_query($query) or die(mysql_error());
    while ($row = mysql_fetch_assoc($result)) {
     $category = $row['category'];
     $catId    = $row['id'];  
     echo "<li><input class='catCheck' type='checkbox' name='p_cat[]' value='$catId' /> $category</li>";
    }
  ?>
</ul>
4

2 に答える 2

0

HTMLページではこのようにします

echo "<li><input class='catCheck' type='checkbox' name='p_cat['.$row['id'].']' value='$catId' /> $category</li>";

そしてバックエンドでこのようにします

$delete = $_POST['p_cat'];

foreach ($delete as $id => $val) {
    if($val=='checked'){
        $query="DELETE FROM TABLE WHERE id = '".$id."'";
        $result= mysqli_query($connection, $query) or die("Invalid query");
    }
}
于 2012-04-14T09:37:11.643 に答える
0
  • 各チェックボックスに独自の名前を付ける必要があります。たとえば、p_cat1、p_cat2、...
  • 次に、チェックボックスに付けた名前を覚えておく必要があります。たとえば、名前が p_cat1、p_cat2、... の場合、チェックボックスの数を知っている必要があります。したがって、このカウントを隠しフィールドに入れるか、データベースから再度取得する必要があります。
  • チェックボックスのチェック状態を設定する場合は、「value」ではなく「checked」html 属性を使用する必要があります。

.

echo "<li><input class='catCheck' type='checkbox' name='p_cat[]' ".($is_checked? " checked " : "")."/> $category</li>";
  • リクエストがクライアントから来た場合、すべての $_POST["p_cat$i"] 変数を手動で反復処理し、isset($_POST["p_cat$i"]) などを使用して状態を取得する必要があります。
于 2012-04-14T08:32:11.400 に答える