セレクトボックスの値を保持してフォームに戻る方法

このQ&Aのポイント
  • 初心者の方がPHPを使用してメールフォームを作成している際、入力確認時やエラーが発生した場合にセレクトボックスで選択した情報を保持させる方法について、解説します。
  • 本記事では、ドロップダウンリストを使用したセレクトボックスの値をフォームに戻ったときに保持させるための方法を紹介します。
  • また、サンプルソースコードも提供していますので、参考にしてみてください。
回答を見る
  • ベストアンサー

セレクトボックスの値を保持

現在php等を使用してメールフォームを作成してる初心者です。 入力確認時、エラー等でフォーム画面に戻った時にセレクトボックスで 選択した情報を保持させたいのですが上手くいきません。 恐らく function MenuValue の指定の仕方が悪いのではと思うのですが・・・ 色々やってみてはいるのですがどう直したらよいか解りません。 ソースは・・・ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>メールフォーム</title> </head> <body> <?php ~中略~ /* ****************************************************************** 確認時エラー等でフォーム画面に戻った時に入力した情報が消えない設定 ドロップダウンリスト用 ****************************************************************** */ function MenuValue($v,$r) { if(!empty($_POST[$v])) { if($_POST[$v] == $r){ return " checked='checked'"; } } } お問い合わせ内容のカテゴリ<br> <select name="menu" id="menu"> <option value="未選択"'.MenuValue("menu","未選択").'>▼選択して下さい</option> <option value="野菜"'.MenuValue("menu","野菜").'>野菜</option> <option value="果物"'.MenuValue("menu","果物").'>果物</option> </select> <br> <br> <input name="reset" type="reset" id="reset" value="クリア"><input name="submit" type="submit" value="確認"> </form> ~後略~ となたかご指導宜しくお願い致します。 サンプルソース等添付頂ければ尚有難いです。

  • PHP
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

今回の最大のミスはcheckedと書いていること 正解はselectedですね。 あとはおそらくいだいたいのフローはあっていると思います

関連するQ&A

  • セレクトボックスを無効に出来なくて困っています

    このサイトで拝見したソースを参考に、ラジオボタンで選択した項目以外のテキストボックスなどが無効になる仕組みの、以下のようなフォームを作りました。 <form method="POST" name="form01"> <script language="javascript" type="text/javascript"> <!-- function swDis() { fObj = document.form01; fObj.sentaku01.disabled = (fObj.namae[0].checked) ? false : true ; fObj.sentaku02.disabled = (fObj.namae[1].checked) ? false : true ; fObj.sentaku03.disabled = (fObj.namae[2].checked) ? false : true ; } //--> </script> <p> <input type=radio name="namae" value="AAA" onclick="swDis()" checked /> sentaku01 <select name="sentaku01" id="sentaku01"> <option>選択肢1</option> <option>選択肢2</option> <option>選択肢3</option> </select> <br /> <input type=radio name="namae" value="BBB" onclick="swDis()" /> sentaku01 <input type=text name="sentaku02" disabled /> <br /> <input type=radio name="namae" value="CCC" onclick="swDis()" /> sentaku01 <input type=text name="sentaku03" disabled /> <br /> <input type=radio name="namae" value="sentaku04" onclick="swDis()" /> sentaku04<br /> <input name="" type="submit" value="送信する" /> </p> </form> しかし、この方法ですと、最初にフォームが表示された段階ではセレクトボックスが生きてしまい、他のいずれかのラジオボタンをクリックしないとセレクトボックスがグレーアウトしてくれません。 フォームが表示された時点ですぐにセレクトボックスをグレーアウトさせる方法はないでしょうか? 対策をご存じの方がいらっしゃいましたらどうかよろしくお願い致します。

  • SELECTの値を保持する

    只今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="送信">

  • まったく同じ<select>フォームの値を連動させたい

    まったく同じ<select>フォームの値を連動させたい ptpで下記のようなコードがあり、まったく同じselectフォームの値を常に連動させるにはどうしたらよいでしょうか。 本当は、ひとつのform内に二つのSubmitボタンがあってはならないような話を聞いたことがありますが・・・ <html> <head> </head> <body> <?php $btn = "<select name='sorttype'>"; $btn .= "<option value='0'>氏名</option>"; $btn .= "<option value='1'>年齢</option>"; $btn .= "<option value='2'>電話番号</option>"; $btn .= "</select>"; $btn .= "<input type='submit' name='exec' value='保存'>"; ?> <form> <?= $btn ?> ああああ<br> いいいい<br> うううう<br> <?= $btn ?> </form> </body> </html>

  • Javascriptを使ったセレクトボックスでPHPの変数を表示させるには?

    下記のページに書かれている通り、 選択肢(1)によって、選択肢(2)の内容が変わるようにしたのですが、 http://www.ksknet.net/javascript/post_54.html 内容を、PHPでデータベースに保存して更新を行なう時に、 選択肢(2)のセレクトボックスで選んだ内容を 表示させる方法がわかりません。 ■やりたいこと 上記ページのスクリプトで、 選択肢(1)を「果物」、選択肢(2)を「みかん」にして、 MySQLに保存して、更新を行なった際、 下記のように更新が行なえるようにしたい。 【選択肢(1)で選んだモノが最上位に表示される】 (例:$select1=「果物」で保存した場合、「果物」が最上位) <select name = "selectName1" onChange="functionName()"> <option value = "$select1">$select1</option> <option value = "果物">果物</option> <option value = "野菜">野菜</option> <option value = "野菜">野菜</option> </select> 【選択肢(2)で選んだモノが最上位に表示される】 (例:$select2=「みかん」で保存した場合、「みかん」が最上位) <select name = "selectName2"></select> ※このフォームに、$select2を入れて、$select2の内容を表示し、 他の選択肢(2)の内容も表示したいのですが、方法がわかりません。 少しわかりにくい質問かも知れませんが、 どうしても実現したいことなので、是非とも宜しくお願いします。

  • セレクトボックスの操作

    <select name="example1"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select> <input type="submit" name="1" value="追加"> 例えば、上記のセレクトボックスの3を選択して送信ボタンを押したら、3以外の4つの数字の値を持ったセレクトボックス(select name="example2)を出現させたいのです。(example1を残したまま) 選択した数字以外の値を持ったセレクトボックスを出現させたいです。 <select name="example2"> <option value="1">1</option> <option value="2">2</option> <option value="4">4</option> <option value="5">5</option> </select> <input type="submit"name="2" value="追加"> 上記のようになります。example2の1を選択し送信したら <select name="example3"> <option value="2">2</option> <option value="4">4</option> <option value="5">5</option> </select> <input type="submit" name="3" value="追加"> 上記のようになります。 上記の手順でセレクトボックスが3つに増えた場合のソースは次のような感じに <select name="example1"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select> <input type="submit" name="1" value="取り消し"> <select name="example2"> <option value="1">1</option> <option value="2">2</option> <option value="4">4</option> <option value="5">5</option> </select> <input type="submit"name="2" value="取り消し"> <select name="example3"> <option value="2">2</option> <option value="4">4</option> <option value="5">5</option> </select> <input type="submit" name="3" value="追加"> 取り消しを押した場合、そのセレクトボックスを削除し、一番新しいセレクトボックス(example3)に削除された値を追加したいです。 example2を取り消した場合、 <select name="example3"> <option value="1">1</option> <option value="2">2</option> <option value="4">4</option> <option value="5">5</option> </select> <input type="submit" name="3" value="追加"> 上記のようになります。 どのように記述すれば実現可能でしょうか? ご教示頂けますと幸いです。 宜しくお願いいたします。

  • セレクトボックスの値を保持したい。

    お世話になります。 カスタムフィールドで設定した値を取り込み、セレクトで選択出来るようにしています。 ページ遷移後に選択した値を保持した状態にしたいのですが、手法が分かりません。 <?php $my_tax = 'area'; $parent_terms = get_terms( $my_tax, array('hide_empty' => false, 'parent' => 0) ); ?> <select name="area"> <option value="">エリア</option> <?php for($i = 0; $i < count($parent_terms); $i++){ ?> <?php $term = $parent_terms[$i]; ?> <option value="<?php echo $term->term_id; ?>"><?php echo $term->name; ?></option> <?php } ?> </select> こちらをどう変更したら宜しいでしょうか?

    • 締切済み
    • PHP
  • セレクトボックスの選択項目を変える

    セレクトボックスの選択項目を変えるには どうすればいいですか? <FORM action=./ method=post> <SELECT name=server> <OPTION value=2 selected>2</OPTION> <OPTION value=3>3</OPTION> <OPTION value=4>4</OPTION> </SELECT> </FORM> こういうフォーム(FORMやOPTIONにnameがない)で [4]を選択したいです このフォームを書き換えないで(スクリプトでの書き換えなら○) どうにか変えることはできないでしょうか? IEのみの対応でいいので、お願いします

  • セレクトボックスの項目ごとにテキストボックスの数値を参照するには??

    初心者なのにjavascriptで作ろうとしているのが 悪いのですが、完全に煮詰まっています。 助けてください。 カロリー計算なんですが、朝食・昼食など食事毎に セレクトボックスの食品項目を選択していきます。 (食品項目は、本来は数十項目あります) 次に選択された項目のグラムをテキストボックスで入力します。 そして、それを食品毎にカロリー計算して合計のカロリーを表示します。 answer=(A*0.1)+(B*0.2)+(C*0.3)+(D*0.4) が、カロリー=(ご飯*0.1)+(肉*0.2)+(魚*0.3)+(牛乳*0.4)といった感じです。 セレクトボックスのオプション項目の食品は、朝食・昼食問わず、同一です。 食品1・2は選択されない場合もあります。 もっと簡単に作れる入力書式などの変更も考えましたが、 諸事情により、この方式の入力・結果表示が必要なんです。 なにぶんボランティアサークルで予算も何もなくHP作成を外部に 依頼するのも不可能です。 少し出来る人が作っている程度です。 他に頼る人もいないので、出来なければ諦めざるえない状況なんで 今、本を読みながら独学で作っています。 どうかお助けください。 厚かましいですが、よろしくお願いします。 <HEAD> <SCRIPT language="JavaScript"> function calc(){ var A = var B = var C = var D = var E = document.f1.answer.innerText = (A*0.1)+(B*0.2)+(C*0.3)+(D*0.4); } window.onload=calc; </SCRIPT> </HEAD> <BODY> <form id="f1"> 計算結果の計算式<BR> 【カロリー(answer)=(A*0.1)+(B*0.2)+(C*0.3)+(D*0.4)】<BR> カロリー<INPUT size="20" type="text" name="answer"><BR> <BR> 朝食<BR> 食品1<SELECT name="s11"> <OPTION value="0" selected>選択項目</OPTION> <OPTION value="1">ご飯</OPTION> <OPTION value="2">肉</OPTION> <OPTION value="3">魚</OPTION> <OPTION value="4">野菜</OPTION> <OPTION value="5">牛乳</OPTION> </SELECT> 左で選択した項目のグラム<INPUT size="10" type="text" value="0" onchange="calc()" ><BR> 食品2<SELECT name="s12"> <OPTION value="0" selected>選択項目</OPTION> <OPTION value="1">ご飯</OPTION> <OPTION value="2">肉</OPTION> <OPTION value="3">魚</OPTION> <OPTION value="4">野菜</OPTION> <OPTION value="5">牛乳</OPTION> </SELECT> 左で選択した項目のグラム<INPUT size="10" type="text" value="0" onchange="calc()" ><BR> <BR> 昼食<BR> 食品1<SELECT name="s21"> <OPTION value="0" selected>選択項目</OPTION> <OPTION value="1">ご飯</OPTION> <OPTION value="2">肉</OPTION> <OPTION value="3">魚</OPTION> <OPTION value="4">野菜</OPTION> <OPTION value="5">牛乳</OPTION> </SELECT> 左で選択した項目のグラム<INPUT size="10" type="text" value="0" onchange="calc()" ><BR> 食品2<SELECT name="s22"> <OPTION value="0" selected>選択項目</OPTION> <OPTION value="1">ご飯</OPTION> <OPTION value="2">肉</OPTION> <OPTION value="3">魚</OPTION> <OPTION value="4">野菜</OPTION> <OPTION value="5">牛乳</OPTION> </SELECT> 左で選択した項目のグラム<INPUT size="10" type="text" value="0" onchange="calc()" ><BR>  </FORM> </BODY>

  • セレクトボックスとチェックボックスを使った絞込み検索

    Yomi-Searchについての質問なのですがタイトルの通りの質問でチェックボックスを使った絞り込み検索では 01_03 04_01 と検索結果に表示されるのですがセレクトボックスとチェックボックスを組み合わせて絞り込み検索をしてみると 01_0304_01 とこのようにカテゴリとカテゴリの間にスペースが入らず絞り込み検索が出来ません‥ タグはこのように書きました。 <FORM action="http://www..." method="get" target="" name="form1"> <INPUT type="hidden" name="mode" value="search"> <INPUT type="hidden" name="page" value="1"> <INPUT type="hidden" name="sort" value="mark"> <INPUT type="hidden" name="engine" value="pre"> <INPUT type="hidden" name="kn" value="30"> <SELECT size="1" name="word"> <OPTION type="selected" value="">--------</OPTION> <option value="01_01" name="word1">○○○</option> <option value="01_02" name="word2">○○○</option> <option value="01_03" name="word3">○○○</option> </SELECT><BR> <BR> <INPUT type="checkbox" name="word4" value="04_01">○○○<BR> <INPUT type="checkbox" name="word5" value="04_02">○○○<BR> <INPUT type="checkbox" name="word6" value="04_03">○○○<BR> <BR> <INPUT type="submit" value=" 検 索 "> <INPUT type="reset" value="リセット"> &nbsp; </FORM> 全くの初心者ですいませんが良きアドレスなどをお願いします。

  • セレクトメニューの値が旨く得られない

    PHP初心者です。 教えて下さい。お願いします。 下記のようなプログラムを組んでいます。 セレクトメニューで選択されたメニューの結果を変数に入れたいのですが、入ってくれません。変数の中身は空でした。 MySQLのテーブルからデータを読み出し、それをループでオプションを作成しております。セレクトメニューには正常に表示されておりますが、その表示され選ばれた内容のデータが、変数に入っておりません。どこが間違っているのでしょうか。ご教授下さい。 宜しくお願い致します。 --------------------------------------------------------------- <?php //MySQLの記述は殆ど割愛しています。 $sql = "SELECT chimei from tbltest"; $rst = mysql_query($sql); $i=0;$cnt=0; while($col = mysql_fetch_array($rst)) { //地名のデータを、MySQLより読み込んでおります。 $arychimei[$i] = $col[chimei]; //テーブル(配列)に格納しております。 $i++; } //この画面で確認するためのフォームです。 $body .= "<FORM name = 'selectform' action = '$PHP_SELF' method='POST'>";  $body .="地 名  <SELECT name = 'chimei'>"; $body .= "<option selected> "; for ($cunt=0;$cunt<=$i;$cunt++){ $body .= $option[$cunt] = '<OPTION>'.$arychimei[$cunt]; } $body .= "</SELECT><BR> <BR> <BR>"; $body .= "<INPUT type = 'hidden' name = 'chimei' value = '$chimei'>"; $body .= "<INPUT type = 'submit' value = '検索'> </FORM> print "地名は".$chimei."です。<br>"; print $body; ?>

    • ベストアンサー
    • PHP

専門家に質問してみよう