- ベストアンサー
b.phpファイルで値を取得し、a.phpファイルに表示する方法
- b.phpファイルでフォームを作成し、チェックボックスを表示する。
- a.phpファイルでPOSTメソッドを使用して、b.phpから送信された値を取得する。
- 取得した値をa.phpファイル上で表示する。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ちゃんとやりたいなら今のデータの持ち方だと無理ですね <?php $happys = array( Array('id'=>'a-1','name'=>'a[]','value'=>'テレビ') ,Array('id'=>'a-2','name'=>'a[]','value'=>'パソコン') ,Array('id'=>'a-3','name'=>'a[]','value'=>'犬') ,Array('id'=>'a-4','name'=>'a[]','value'=>'ゲーム') ); foreach($happys as $happy) { print "<label for=\"{$happy['id']}\">{$happy['value']}</label><input type=\"checkbox\" id=\"{$happy['id']}\" name=\"{$happy['name']}\" value=\"{$happy['value']}\" />\n"; } ?> みたいにするといいです。a.phpでは <?PHP foreach((array) $_REQUEST["a"] as $val){ print $val."<br />\n"; } ?> でデータがとれます。
その他の回答 (3)
- yambejp
- ベストアンサー率51% (3827/7415)
>そうです。まだ、テレビではなくa-1と表示されます。 それはないですね・・・b.phpでキャッシュが残っている可能性はあるので b.phpの状態でブラウザのF5などで更新をかけてみてください そのうえで、ブラウザからソースを除いてもらえば <label for="a-1">テレビ</label><input type="checkbox" name="a-1" value="テレビ"/> <label for="a-2">パソコン</label><input type="checkbox" name="a-2" value="パソコン"/> <label for="a-3">犬</label><input type="checkbox" name="a-3" value="犬"/> <label for="a-4">ゲーム</label><input type="checkbox" name="a-4" value="ゲーム"/> と表示されていることを確認してみてください。 もし <label for="a-1">テレビ</label><input type="checkbox" name="a-1" value="a-1"/> となっていたら転記ミスの可能性大です。
お礼
ありがとうございます。やっと、目当てのデータ(テレビ)を取り出し、a.php側で表示することができました。 ちなみに、すべてのデータを取得するには <?php print($_POST['a-1']); print($_POST['a-2']); print($_POST['a-3']); print($_POST['a-4']); ?>です こうするしかないのでしょうか?javascript:void(0); 1行のコードで済ますことは無理なのでしょうか?
- yambejp
- ベストアンサー率51% (3827/7415)
>まだうまくいきません。 というのはprint($_POST['a-1'])してもまだa-1が表示されるという意味でしょうか? もしそうであれば、きちんとソースに反映していないのだと思いますが・・・ そうでなく別のエラーならどのような状況なのか例示ください
補足
そうです。まだ、テレビではなくa-1と表示されます。 ちなみに、 a.phpにテレビと表示させるには、 <?php print($_POST['a-1']) ?> のコードだけですか?
- yambejp
- ベストアンサー率51% (3827/7415)
むむ? b.phpがこうじゃないの? <?php $happys = array('a-1'=>'テレビ','a-2'=>'パソコン','a-3'=>'犬','a-4'=>'ゲーム'); foreach($happys as $hkey=>$hvalue) { print('<label for="' . $hkey . '">' . $hvalue . '</label><input type="checkbox" name="'. $hkey . '" value="' . $hvalue . '"/>'); } ?>
補足
おっしゃる通りにコードを変更しましたが、まだうまくいきません。
お礼
長い間。お付き合いしていただきありがとうございました。 また、機会がありましたらよろしくお願いします。