PHPでチェックボックスの内容を保存する方法
2点の質問があります。
経験者に相談ですが、
1番目の質問
フォームによるチェックボックスの内容をカンマ区切りのデータとして内容を取得保存する場合に皆様はどのようにしてるか教えてください。
例
みかん チェックあり
りんご チェックなし
ばなな チェックあり
(1)データ1,データ2,データ3,みかん, ,ばなな (チェックがない項目は空にする)
(↑この場合はチェック項目を跡で追加する場合は結構面倒)
(2)データ1,データ2,データ3,みかん: :ばなな (カンマ間で適当な区切り記号)
(↑この場合はログを戻す時に:でスプリットさせて処理する)
2番目の質問
ログに書き込んだデータを再度カンマ区切りでスプリットさせてフォームのチェックボックスとして元に戻して表示する方法がわかりません。サイト検索しましたがサンプルになりそうなものが見つからず、もし参考になりそうなサイトやヒントになるようなサンプルを教えて下さい。
お願いします。
No.3
- 回答日時:
すみません、間違えてました。
<?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;
}
}
?>
でした。
なるほどですね!
非常にためになりました。
また、コード処理も教えていただきまして助かりました。
また、何かありまましたらお願いします。
No.2ベストアンサー
- 回答日時:
質問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属性を付加しています。
No.1
- 回答日時:
こんにちは(^^)
カンマ切りといっても、最終的にどのような恰好にするかによる気もしますが、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] ?> />
みたいな感じで。
流れとしては、こんな感じが分かりやすくて、作りやすいのではないかと。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java javaのCSVデータ読込についてです 6 2022/07/02 10:58
- JavaScript javaScriptで画面に値を入れるには 1 2022/08/14 12:27
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- HTML・CSS WEBサイトの構築。表示データとWEBデザインを分離する考え方を専門用語・業界用語では何と言うか? 8 2022/09/27 09:16
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPとHTML+Xamppの掲示板で画像...
-
PHPで画像の渡しが上手く行きま...
-
複数行のデータ一括更新に関して
-
POSTデータのNAME属性をVALUEに...
-
IEで、フォームにたとえば
-
チェックボックスを用い、MySQL...
-
フォームの途中で追加するには
-
検索時の選択内容を保持する方法
-
PHPでユーザー情報を入力して簡...
-
PHPでCookieを使った訪問回数に...
-
現在ラジオボタンのデータベー...
-
チェックボックスによる検索
-
【PHPチェック】ラジオボタンが...
-
フォームでのリセットを使う方法
-
phpやmysqlで作る簡易掲示板作...
-
配列をhiddenで
-
DBの値をチェックボックスに反...
-
チェックボックスから複数のval...
-
PHP+MySQLで複数のラジオボタン...
-
HTMLで前の画面に戻る時、入力...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<input type="hidden" >で配列...
-
HTMLで前の画面に戻る時、入力...
-
PHPでユーザー情報を入力して簡...
-
PHP ボタンが押されたら処理を...
-
PHPとHTML+Xamppの掲示板で画像...
-
syntax error, unexpected '}' ...
-
検索時の選択内容を保持する方法
-
PHPでCookieを使った訪問回数に...
-
チェックボックスによる検索
-
フォームでのリセットを使う方法
-
PHPで画像の渡しが上手く行きま...
-
チェックボックスによる検索(...
-
フォームへの前回入力値をクリ...
-
フォームボタンを押すたびに数...
-
php mysql でチェックボックス...
-
PHPの関数実行
-
phpで分からないエラーが出てし...
-
PHPで、ボタンを押すと同じペー...
-
ラジオボタンをsessionで使いたい
-
入力フォーム→確認画面→送信画...
おすすめ情報