- ベストアンサー
PHPでチェックボックスの内容を保存する方法
- PHPでチェックボックスの内容を保存する方法について教えてください。フォームによるチェックボックスの内容をカンマ区切りのデータとして取得保存する方法についても教えてください。
- PHPで保存したデータを再度カンマ区切りでスプリットさせ、フォームのチェックボックスとして表示する方法について教えてください。
- PHPを使用してチェックボックスの内容をデータとして保存し、再度表示する方法について教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
質問1への回答 私はこのやり方でやっています。 http://9jp.info/archives/200 ファイル管理の場合でもファイルを一つ追加するなどして応用出来ると思います。 質問2への回答 カンマで分割した後のチェックボックスのデータを$aとします。 $ckb = split( ":", $a); if(in_array("りんご",$ckb)){ echo "りんごはある"; } else{ echo "りんごはない"; } という形であるか無いかは判定出来るので $fruit[1] = "りんご"; $fruit[2] = "みかん"; などと予めチェックボックス項目の配列を作成しておき、 $ckb = split( ":", $a); foreach($fruit as $val){ if(in_array("りんご",$ckb)){ echo '<input type="checkbox" value="'.$val.'" checked>'.$val; } else{ echo '<input type="checkbox" value="'.$val.'">'.$val; } } こんな感じでどうでしょう?項目がある場合にのみchecked属性を付加しています。
その他の回答 (2)
- dstlist
- ベストアンサー率100% (1/1)
すみません、間違えてました。 <?php $fruit[1] = "りんご"; $fruit[2] = "みかん"; $ckb = split( ":", $a); foreach($fruit as $val){ if(in_array($val,$ckb)){ echo '<input type="checkbox" value="'.$val.'" checked>'.$val; } else{ echo '<input type="checkbox" value="'.$val.'">'.$val; } } ?> でした。
- manimani2
- ベストアンサー率70% (12/17)
こんにちは(^^) カンマ切りといっても、最終的にどのような恰好にするかによる気もしますが、CSVを思い浮かべればよいでしょうか? それならばユーザーの回答データ毎に改行をいれ、1行=1ユーザー分=1レコードというように、データベースに似た形になりますよね。 で、それを前提として(「データ1,データ2,データ3」とありますが、これは「みかん、りんご、ばなな」とは別のデータでしょうか? それとも表題(ex.みかん=データ1)? このデータ○の存在意義がわからないので、お望みの回答ではないかもしれませんが、2番目の質問にあるように、後ほど取り出す事を考えるのであれば)(1)の方が個人的にはやりやすそうな気がします。 例1:「みかん」と「ばなな」を選択 "みかん","","ばなな" こうしておくと、のちのち、PHPでCSVデータ(今回はログに該当)を取得する際に、配列で取得できますよね。このデータを入れる変数を$hogeとすると、 $hoge[0] = "みかん" $hoge[1] = "" $hoge[2} = "ばなな" というような感じで取得することになると思います。こうなれば、「選択されていない=空」「選択されている=空でない」となりますので、2番目の質問への回答としては、条件分岐で処理が可能です。例えば、 for($i=0;$i<count($hoge);$i++){ if($hoge[$i] != ""){ $checked[$i] = 'checked="checked"'; } } などとして、あらかじめ、空でなければ(=選択されていれば)何かしらの変数に(ここでは$checkedとしています)「checked="checked"」をいれるようにし、HTMLの表示部分にてechoしてやればよいと思います。 例: <input type="checkbox" name="" value="みかん" <?php echo $checked[0] ?> /> <input type="checkbox" name="" value="りんご" <?php echo $checked[1] ?> /> <input type="checkbox" name="" value="ばなな" <?php echo $checked[2] ?> /> みたいな感じで。 流れとしては、こんな感じが分かりやすくて、作りやすいのではないかと。
お礼
なるほどですね! 非常にためになりました。 また、コード処理も教えていただきまして助かりました。 また、何かありまましたらお願いします。