- ベストアンサー
フォーム送信で選択内容を保持して表示するプログラムの作成方法
- フォーム送信後も選択内容を保持して表示する方法について教えてください。
- フォームの選択肢をそのまま表示するプログラムの作成方法を知りたいです。
- フォーム送信時に選択された項目を再度表示する方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
たとえばこんな風に処理します <?PHP $select["num"]=array(); $option["num"]=array("nodata","5","7"); $request["num"]=(isset($_REQUEST["num"]) and in_array($_REQUEST["num"],$option["num"]))?$_REQUEST["num"]:"nodata"; foreach($option["num"] as $val){ $select["num"][$val]=($request["num"]===$val)?" selected=\"selected\"":""; } //print_r($select); //チェック用 ?> <html> <head></head> <body> <form> <p> <select name='num'> <option value=''<?PHP print $select["num"]["nodata"];?>>選択する</option> <option value='5'<?PHP print $select["num"]["5"];?>>5</option> <option value='7'<?PHP print $select["num"]["7"];?>>7</option> </select> <input type=submit value='送信'> </p> <form> </body> </html>
その他の回答 (1)
- think49
- ベストアンサー率59% (285/482)
form内容の保持はサーバサイド(PHP)で処理すべきです。 PHPなら $_GET でform内容を受け取れるはずなので <option selected> で選択させて下さい。 document.write(<?php print $_GET["num"]; ?>); この部分もPHPで出力すれば済むはずでJavaScriptで出力する必要はないように思えます。
お礼
早速の回答ありがとうございます。 >>document.write(<?php print $_GET["num"]; ?>); よく考えたらわずらわしい事やっちゃってましたね 初めフォームの状態をJavaScriptで抽出して書きだそうとしてたので そこにphpの要素を取り入れたら変な書き方になってしまいました。 問題の箇所以外の部分にも不安があったので、ありがとうございます。 選択させる部分が具体的にいまいちわからなかったのですが <option name='5' value='5' <?php print ($_GET['num']==5) ? "selected" : ""; ?> >5</option) > <option name='7' value='7' <?php print ($_GET['num']==7) ? "selected" : ""; ?> >7</option> このような書き方で問題ないですか?
お礼
ありがとうございました。 例で示してくれてわかりやすかったです。 勉強してみます。