プロが教える店舗&オフィスのセキュリティ対策術

只今PHPを勉強中の者です。
HTMLのSELECTで選択して送信ボタンを押します。
選択したものがエラーだと、また最初の画面に戻ります。
その時、先ほど選択したOPTIONを最初から表示したいのですが、
可能でしょうか?
<SELECT NAME="Month" >
<OPTION>
<OPTION VALUE="1">1
<OPTION VALUE="2">2 ←例えばこれを選択して送信した場合は、
<OPTION VALUE="3">3  エラーになりまたこの画面に戻る。 
<OPTION VALUE="4">4  その時最初から「2」を表示したい。 
<OPTION VALUE="5">5
<OPTION VALUE="6">6
<OPTION VALUE="7">7
<OPTION VALUE="8">8
<OPTION VALUE="9">9
<OPTION VALUE="10">10
<OPTION VALUE="11">11
<OPTION VALUE="12">12
</SELECT>
<input type="submit" value="送信">

A 回答 (3件)

>>可能でしょうか?


といわれれば可能でしょうけど。。。

PHP使いじゃないもんで、ソースの提供はできません。

クッキーに入れたり、セッションで保持してみたり、POSTやGETで渡して、エラーの時にはそれを戻してやったり。。。
まぁ、簡単に思いつくのはこのぐらいかと。

他にも方法だけならいくつでもありますが。。。
    • good
    • 0

デフォ値を設定するのはよくあることです。


$_REQUEST['Month']の値が2だった場合に<OPTION VALUE="2">に
selectedが付くようにプログラムすればよいでしょう。

ちなみにPHPは専用ページに説明したほうがよいですね
    • good
    • 0

エラーが出た場合エラーページで戻るボタンを表示しそのボタンを押すとselectの値を送るような感じにすればよいと思います。


エラーがでたら元のページではなく新しいページ(区画)を作りそこでselectedを表示させます。
元のページに戻っても値を保持していないので無理です。

エラーページ
エラーです。
<form name="form1" method="post" action="">
<input type="hidden" name="atai" value="<?php echo $Month;?>
">
<input type="submit" name="yarinaoshi" value="修正する">
</form>

POSTで飛ばす(セキュリティー関係は、省略しています。)
<?php
extract($_POST);
if(isset($_POST["yarinaoshi"])){
$sentaku=array();
$sentaku[$atai]="selected";
?>
<SELECT NAME="Month" >
<OPTION>
<OPTION VALUE="1" <?php echo $sentaku[1];?>>1
<OPTION VALUE="2" <?php echo $sentaku[2];?>>2
<OPTION VALUE="3" <?php echo $sentaku[3];?>>3  
以下省略

参考URL:http://masago.kir.jp/
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!