0

この質問をご覧いただきありがとうございます。

現在、「Luxury、Brand、Retailer」、「B2B」というラベルの付いた4つのチェックボックスを作成するコードがあります。チェックボックスを作成するためにいくつかのPHPメソッドを調べましたが、implode()関数が最も単純で私の仕事に適していると感じました。インプロージョンを作成するためにいくつかのチュートリアルを調べましたが、データベースの値をフロントエンドに反映させたいので、それらは私の基準に適合しませんでした。現在私のデータベースでは、implode()が機能します。したがって、たとえば、「Luxury」、「Brand」、「Retailer」をチェックして「Submit」ボタンを押すと、「Luxury、Brand、Retailer」の3つの項目が機能します。その指定されたセルにあります。私のコードはバックエンドで機能しているように見えますが、これらは私の問題です。

  1. 単一セル配列に格納されている値を取得し、「選択済み」として選択する方法が(複数のGoogleにもかかわらず)正確にはわかりません(これにより、フロントエンドのボックスが「チェック」されます)

誰かが親切に以下の私のコードを見て、私が改訂を試みることができるように、何が欠けている/間違っている/間違っているように見えるかを教えてもらえますか?何でもありがたいです、ありがとう!

<?

if (isset($_POST['formSubmit2'])){
    $category = mysql_real_escape_string(implode(',',$_POST['category']));
    $accountID = $_POST['accountID'];

    mysql_query("UPDATE Spreadsheet SET category='$category' WHERE accountID='$accountID'");
}


$query = mysql_query("SELECT * FROM Spreadsheet LIMIT $firstRow,$rpp");

while($row = mysql_fetch_array($query)){  

// Begin Checkboxes

$values = array('Luxury','Brand','Retailer','B2B');

  ?>

<form name ="category" method ="POST" action ="" >

 <?

echo "<input type = 'hidden' name = 'accountID' value = '" . $row['accountID'] . "' >";
        for($i = 0; $i < count($values); $i++){
 ?>

 <input type="checkbox" name="category[]" value="<?php echo $values[$i]; ?>" id="rbl_<? echo $i; ?>" <? if($row['category'] == $i) echo "checked=\"checked\""; ?>/>
 <? echo $values[$i] ?><br>

 <? } ?>

        <input type ="Submit" name ="formSubmit2" value ="Submit" />
        </form>

 <? } ?>
4

1 に答える 1

0

あなたが持っているものを考えれば、私が推奨できる最善のアプローチは、データベースから値を分解して、すべての選択フィールドの新しい配列を提供することです。次に、in_arrayを使用して、ループ内のこの新しいリストと使用しているリストを比較します。次に、必要に応じてチェックボックスにフラグを付けます。

于 2012-12-18T16:15:21.973 に答える