• 締切済み

selectで選ばれた値を別ページのセレクトボックスへ渡す

こんばんわ。 二つの連動したセレクトメニューがあって、別ページにもまったく同じものがあるんですが、最初のページで選ばれた値を別ページを読み込んだときにセレクトメニューに初期設定として渡すことはできますか? いろいろWEBでサンプル等探しておりましたが、ニッチもサッチもいきません。どなたかご教授ください。

みんなの回答

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

今回の作業はjavascriptですべきことでは ない気が・・・。#3で書いた埋め込みを 実現してください。 例示のソースにあるCreateは勝手に指定し たものだと思うのでフォローにも限界があ りそうですが、selectは動的に作成してい るのですか? スタティックに最初から手で書いたほうが よいのでは? とはいえ、質問の件は以下のとおりです。 仮にoption21番目の項目にselectedをつけ るなら以下です。 document.getElementById('lstsel1').options[20].selected=true; optionsは0からはじまるので1ひきます。 もしここで、getなどで受け取ったデータ 内容を元にselectedをつけるのであれば forでoptionsをまわしてvalueを参照し、 適合したところに.selected=true;をつけ ればよいでしょう。 その辺すでに#2で例示してあります

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

データの受渡さえPHPでやるなら、非常に簡単な話しで、 onloadとかそんなレベルの話じゃなく、クライアント 依存しないように最初からデフォ値を埋め込みます。 以下はgetでしてますがpostでもできます。 //a.htm これはAです。<br> <form action="b.php" method="get" name="f"> <select name="s" onChange="this.form.submit()"> <option value="">---------- <option value="001">データ001 <option value="002">データ002 <option value="003">データ003 <option value="004">データ004 </select> </form> //b.php <?PHP $s_get=$_GET["s"]; $s_option["001"]="データ001"; $s_option["002"]="データ002"; $s_option["003"]="データ003"; $s_option["004"]="データ004"; $s_selected[$s_get]="selected"; foreach ($s_option as $key => $val){ $body.="<option value=\"".$key."\" ".$s_selected[$key].">".$val."\n"; } ?> これはBです。<br> <form name="f"> <select name="s"> <option value="">---------- <?= $body ?> </select> </form>

briantaphy
質問者

補足

有難うございます。ほんとに恐縮ですが追加質問させて下さい。 onloadを使う場合はどのようにoption値にselectedをつけるのでしょうか? 以下使用しているスクリプトです。 function CreateList()//body要素のonLoad属性でコールされる { Create(document.getElementById('lstsel1'), strsel1); Create(document.getElementById('lstsel2'), strsel22); }                            ↑                            この配列

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

もうすこし具体的な例をあげていただけば回答しやすい のですが、一応この程度ならできます。 結局ページ間でデータを渡すのはjavascriptではムリが あります。ソース見てもらえればわかりますが、 かなりムリヤリです。 データの受け渡しはPHPやCGIに任せる方がムダが 少なくてすみますよ。以下ソース //a.htm これはAです。<br> <form action="b.htm" method="get" name="f"> <select name="s" onChange="this.form.submit()"> <option value="">---------- <option value="001">データ001 <option value="002">データ002 <option value="003">データ003 <option value="004">データ004 </select> </form> //b.htm これはBです。<br> <form name="f"> <select name="s"> <option value="">---------- <option value="001">データ001 <option value="002">データ002 <option value="003">データ003 <option value="004">データ004 </select> </form> <script language=javascript> var a=document.location.toString().split("?") if (a.length==2){ var b=a[1].split("=") eval(b[0]+"=\""+b[1]+"\"") var e=document.forms["f"].elements[b[0]] for (var i=1;i<=e.length;i++){ if(e.options[i].value==eval(b[0])){ e.selectedIndex=i break } } } </script>

briantaphy
質問者

補足

おはようございます。#1さん#2さん有難うございます。 おっしゃるとおりデータの受け渡しはPHPで考えてます。 ただ受け渡したデータを、連動した二つのセレクトボックスに初期設定として (onload属性でコールすればいいんですかね?)配置したいんです。 具体的な例を挙げずに、ソースまで書いていただいて有難うございます。 javascriptは初心者で、連動するセレクトメニューは以下のサンプルを使っております。宜しくお願いします。 http://www.parkcity.ne.jp/~chaichan/src/javasc31.htm

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

別ページを呼び出すときに form method=GETを使うか あるいは、リンクで直接URL?name=value のようにして呼び出せば、呼び出されたページで location.searchプロパティで?以降の文字が取り出せます。 この値を使ってセレクトメニューを設定すればいいでしょう

briantaphy
質問者

補足

ご回答有難うございます。 セレクトメニューの設定ですが、連動した二つのセレクトボックスのoption値 に動的にselectedをつけることってできますか? 当方初心者で、いろいろなサイトを参考にしましたが、 どうにかすると、メニューの何番目が選ばれたかを変数にして渡して、別ページの連動したセレクトボックスにselectedがつけることができるみたいなんですけど。 すみません分かりにくい質問で。宜しくお願いします。

関連するQ&A

  • 複数の連動するセレクトボックスについて。

    こんにちは。 以前もこちらでPHP+mysqlについて質問させていただきました。 今、複数(3つ)の連動するセレクトボックスを作成しているのですが、一つ目と2つ目は正常にDBから値を読み込んできて、各セレクトボックスが連動することが可能となりましたが、3つ目のセレクトボックスの 初期値の値が、2つ目のセレクトボックスの値をDBへ問い合わせて変えない限り、そのまま残ってしまいます。どうすれば3つのセレクトボックスが連動するように解決するのでしょうか?? よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • Select ボックスで選択した値を渡して、同一ページに再表示するには?

    JavaScriptで、年/月をSelectボックスで選択し、 その年/月のカレンダーを同一ページ内に表示したいのですが、 セレクトボックスで値を選択後、カレンダーを同一ページに 表示させる際、再表示時にセレクトボックスが初期状態に 戻ってしまいます。 そのため、カレンダーも初期状態のままのカレンダーのまま変更されません。 どうしたら、値を渡して再表示できるのでしょうか? 方法としましては、自分自身を再呼び込みするといった感じで しか方法が見つかりませんが、別の方法があれば、それでも結構です。 初心者なもので、なにとぞ、よろしくお願いいたします。

  • セレクトメニューに値を戻す

    よろしくお願いします。 現在、 (1)「入力ページ」から値を取得しCSVに書き込み (2)特定キーによりCSVの内容を「編集ページ」に読み出し と言うことを行いたいのです。 (1)は問題ないのですが、 (1)の「入力ページ」からセレクトメニューで取得した値を(2)でもセレクトメニューで取得したいのですが可能でしょうか? 要は(1)も(2)も見た目を同じに、 「入力ページ」は新規入力用、「編集ページ」は変更・更新用というふうに使いたいです。 例えば、 セレクト項目の内容が、  北海道  青森県  岩手県  宮城県 となっており、(1)で「青森県」を選択→CSVへ書き込み とし、 (2)の表示の時にセレクトメニューには「青森県」が表示されており、かつ上記の項目が選択可能であるようにしたいのですが、 どなたか情報等お持ちの方いらっしゃいましたら、 よろしくお願いいたします。 webサーバー・・・HP-UX web・・・IE CGI開発言語・・・Perl 開発端末・・・windows2000(Tera Term 使用)

  • プルダウンリスト(コンボボックス?)でひとつ選択し、その値を別のページで表示させる方法はないのでしょうか。

    お世話になっております。 ひとつわからないのですが、 たとえば、プルダウンには、”選択してください”、”東京”、”大阪”、”沖縄”と入っているとします。ここで、”大阪”を選び、別ページ”A”で値を$_postで受け取るとします。選択済みは”選択してください”です。 このページ”A”は再編集するためのページです。ページ”A”を開くと、先ほど選択した”大阪”をプルダウンメニューの初期設定(選択済み)にするにはどうしたらいいのでしょうか。 申し訳ございませんが、ご教授願います。よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 複数の連動する同じ内容のセレクトボックスについて

    こんばんわ。 よろしくお願いします。 複数の同じ内容のセレクトボックスが連動するモノを作りたいのですが、まったく解りません。 たとえば 初期値を『選択しない』とし、1~5までの値を選択出来るセレクトボックスが5つあるとします。 1つ目のセレクトボックスで『3』を選択したら、残りのセレクトボックスでは3を除いた1~5までの値を選択出来ます。 さらに2つ目のセレクトボックスで『2』を選択したら、残りのセレクトボックスでは2と3を除いた1~5までの値を選択出来きるといった、全てのセレクトボックスが連動した重複を許さないセレクトボックスを作りたいのですが、可能でしょうか?

  • セレクトメニューで選んだ値をテキストボックスへ

    4個のセレクトメニューで選択した値(文字列)を、自動で1個のテキストボックス(INPUT)に連結して入力する方法はありますか? 例えば SelectMenuAで、「あい」を選択。       SelectMenuBで、「うえ」を選択。       SelectMenuCで、「おか」を選択。       SelectMenuDで、「きく」を選択。 その後に配置してあるテキストボックスに「あいうえおかきく」が表示される かたちです。 当方javascriptを勉強中の身で、サンプルプログラムをお見せいただけ ればと思います。 テキストボックスの値の連結ならできるのですが、セレクトメニューの選択値で 同じことをすることに手こずってます。

  • セレクトボックスについて

    セレクトボックスで例えば0~9を選択できるように設定した場合、普通は最初の「0」が表示されますが、1~9を最初に表示したい場合はどうすればいいでしょうか?並び順はかえずに、           0           1           2           3←ここを初期に表示したいです           4           ・           ・           ・ わかりにくくてすみませんが、よろしくお願いします。

    • ベストアンサー
    • HTML
  • セレクトしたときに全て初期状態に戻ってしまいます。

    こんにちは。 先日、こちらでご教授いただいた者です。 調べたのですが、その部分についてのいい方法が見つからなかったので、新たに質問させていただきました。 同一ページにテキストフォームと、 3つのセレクトボックスがあり、 その3つのセレクトボックスのうち、2つは連動しますが、残り一つは連動しないようにしたいのですが。 現状は、2つの連動するセレクトボックスを選ぶと 全てが初期状態(未選択の状態)になってしまいます。こちらでご教授いただいた方法を使い、 連動する部分で、onChangeイベントを使っています。 また連動する部分で、一つ目の選択肢を選んだときに、一度mysqlへ問い合わせ、2つ目の項目をmysqlからもってきて表示しています。 連動するセレクトボックスの操作をしたときに 他のテキストフォームや、セレクトボックスが初期状態に戻らないようにするには、どのように改良すればよろしいでしょうか?どうかご教授くださいませ。 よろしくお願いいたします。 WinXP mysql4.0 php4.2 Apache1.3

    • ベストアンサー
    • PHP
  • ページ更新時のセレクトメニューの値

    いつもお世話になっております。 セレクトメニューを選択した状態でページを更新しても選択した項目をそのまま表示させられる方法はあるのでしょうか? もしあるようでしたら、方法をご教授願います。 よろしくお願い致します。

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

    お世話になります。 カスタムフィールドで設定した値を取り込み、セレクトで選択出来るようにしています。 ページ遷移後に選択した値を保持した状態にしたいのですが、手法が分かりません。 <?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

専門家に質問してみよう