2012-04-14 5 views
0

私はテーブルをループして、製品に一致するチェックボックスのリストを返すだけで十分です。今私の問題は、選択された後にループして、指定された製品に対してチェックされているかチェックされていないものとして返す適切な方法を見つけることができないかどうかです。いくつかのMySQLが関わっていると思っていますが、その部分は問題ではなく、データベースに挿入する方法や更新する方法を知っています...ドロップダウンから製品を選択すると、チェックボックスに値を設定する必要があります。ここでPHP/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> 
+0

好きですか?あなたの説明では完全ではありません。 –

+0

クエリから返された結果に基づいてチェックボックスをオンまたはオフにしようとしていますか? –

+0

'checked/unchecked'状態を表す' products'テーブルにフィールドがありますか? –

答えて

0
  • ...私が最初から選択するすべてのカテゴリを表示するために使用していたコードであるあなたは、各チェックボックスに独自の名前を与える必要があります。たとえば、p_cat1、p_cat2、...
  • 次に、チェックボックスに付けた名前を覚えておく必要があります。たとえば、名前がp_cat1、p_cat2、...の場合、チェックボックスの数は既知でなければなりません。したがって、この数を隠しフィールドに入れるか、データベースから再度検索する必要があります。
  • あなたは、チェックボックスのチェック状態を設定したい場合は、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"])のようなものを使用して状態を取得する必要があります。 htmlページで
0

この

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"); 
    } 
} 
関連する問題