2017-02-17 2 views
2

私は、ユーザーが変更できる項目の配列を持っています。その配列内の各項目は、以下の単純化された行が編集することができます。 PHP編集可能なチェックボックス変数を配列に設定する

$item['name']

foreach($items as $item) { 
    <tr> 
     <td><input type="text" value="<?php echo esc_attr($item['name']); ?>" /></td> 
     <td><input type="checkbox" name="" value="" /></td> 
     <input type="hidden" name="items[<?php echo $i; ?>][ischecked]" value="<?php echo esc_attr($item['ischecked']); ?>" /> 
    </tr> 
} 
が正常に変更され、私が求めていることは、チェックボックスをにチェックされている場合は、チェックボックスは、値 trueを格納する方法に設定され $item['ischecked']

+1

'$ item ['ischecked']'が埋め込まれているかどうか尋ねていますか?htmlを生成するときにチェックボックスをチェックする方法は?その場合は、単に> /> 'あなたがこれを意味しなければ、私はあなたが必要とするものを知らない。あなたはあなたの説明をより明確にする必要があります。 – Rasclatt

+1

また、私は入力が 'name'属性なしで値を生成するのに多少驚いています。 – Rasclatt

+0

はい、私はあなたの名前が設定された隠された入力であることを意図しています、私は私の最初の質問のコードを更新しました – grasesed

答えて

0

隠し入力を使用すると、クリーンで直接的な解決策ではなく、回避策のように思えます。

状況に応じて次のスニペットを変更できますか?

foreach($items as $i=>$item){ 
    echo "<tr> "; 
     echo "<td><input type=\"text\" name=\"name[$i]\" value=\"",esc_attr($item['name']),"\" /></td>"; 
     echo "<td><input type=\"checkbox\" name=\"check_name[$i]\" value=\"true\"",(isset($_POST["check_name[$i]"])?" checked":"")," /></td>"; 
    echo "</tr>"; 
    // declare a variable for use in future queries, change/use this as/if needed 
    $check[$i]=(isset($_POST["check_name[$i]"])?"true":"false"); 
} 

私はこの解決策をテストしなかったので、何かが間違っているかどうか教えてください。

関連する問題