- ベストアンサー
PHPのフォーム情報を連想配列に格納する方法
- PHPのフォーム情報を連想配列に格納する方法について教えてください。
- 具体的なフォームは、東京、神奈川、千葉の3つにチェックが入った場合の値を格納する方法が知りたいです。
- 単純にarray_pushを使用して連想配列に値を追加しようとしましたが上手くいきませんでした。どのようにすれば良いでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こういう場合常套手段としてnameに[]をつけることが多いですね。 なおエスケープの問題がめんどうなのでヒアドキュメントを使用するといいですね <?PHP $list = array("tokyo"=>"東京","kanagawa"=>"神奈川","chiba"=>"千葉","saitama"=>"埼玉","ibaragi"=>"茨城"); $str=""; foreach($list as $key => $val){ $str.=<<<eof <input type="checkbox" value="{$key}" name="data[]" id="check_{$key}"><label for="check_{$key}">{$val}</label><br> eof; } $str=<<<eof <form method="GET"> $str <input type="submit" value="送信"> </form> eof; print $str; if($_GET["data"]) print_r($_GET["data"]); ?>
その他の回答 (2)
- gogo724275
- ベストアンサー率16% (1/6)
□東京 □神奈川 □千葉 □埼玉 □茨城 [ 送信 ] この部分のソースを書いてもらえるでしょうか? チェックボックスのnameが同じになっている気がします。
補足
nameが同じだとダメなのですか??初心者ですいません。 ソースは $list = array("tokyo"=>"東京","kanagawa"=>"神奈川","chiba"=>"千葉","saitama"=>"埼玉","ibaragi"=>"茨城"); echo "<form method=GET>"; foreach($list as $key => $val){ echo "<input type=checkbox value={$key} name=data>{$val}<br>"; } echo "<input type=submit value=\"送信\"></form>"; $data[] = $_GET[data]; です。
- gogo724275
- ベストアンサー率16% (1/6)
formからpostやgetでsubmitされた値は自動的に連想配列に格納されます。 print_r($_POST)で表示できるはずです。 Array ( [0] => tokyo [1] => kanagawa [2] => chiba ) これは連想配列ではなく、普通の配列ではないでしょうか?
補足
配列でした、失礼しました。 3つ選択してsubmitしても結果は Array ( [0] => chiba ) となるのですが、なぜでしょうか??
お礼
nameが同じだとダメなんですね!勉強になりました~ わざわざありがとうございました。