• ベストアンサー

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

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

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

  • ベストアンサー
  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.3

A > |北海道| > |青森県|※ > |岩手県| > |宮城県|     ※選択されている項目 >↑↑↑できましたらこのような感じになればとても助かるのですが、 なりますよ。 <option value="xx" selected>とすればそれが何番目にあっても、xx が 選択状態となって表示されます。このへんは、htmlタグの知識ももう少し必要そうですね。 B >以下のように記述すればよいのかと思っていますが、違うのでしょうか。 >------------------------------ ><option selected value ="$data[0]">$data[0] ><option value="北海道">北海道</option> ><option value="青森県">青森県</option> ><option value="岩手県">岩手県</option> ><option value="宮城県">宮城県</option> >------------------------------ 選択肢が2重になってもかまわなければ、それでも不都合は無いかとも思います。 どしてもスマートにAのように表示したければ、 県名を配列に入れておき、$data[0]と比較して同じならselected付きでoptionタグを書き込むようにする。という手順になります。 こんな感じ。テストはしてないので、タイプミスがあったら適宜直して下さい。 @ken_list = {"北海道", "青森県", "岩手県", "宮城県"}; print <<"EOF"; <TR><TD>都道府県</TD><TD><select NAME="TDFK"> EOF foreach (@ken_list){ my $ss = ( $data[0] eq $_ ) ? ' selected' : ''; print <<"EOF"; <option $ss value ="$_">$_</option> EOF } print <<"EOF"; </select></td> EOF

kal1119
質問者

お礼

ありがとうございます。 配列処理でAになるように対応しました。 ほんと、助かりました。

その他の回答 (2)

  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.2

>(2)の表示の時にセレクトメニューには「青森県」が表示されており、かつ上記の項目が選択可能であるようにしたいのですが、 そのページの出力をcgiで行って、「青森県」の選択枝(optionタグ)にselected属性を付ければよいかと思います。 javascript よりは、cgi側の処理問題のように思いますが。 perlでの処理が解らないのなら、perl用の掲示板の方でご質問された方がよいでしょう。

kal1119
質問者

お礼

ご回答ありがとうございます。 CGIでの実現がムリっぽかったので、javascriptで対応できないものかと質問させてもらいました。 ご回答いただきました感じですと、  |青森県|※  |北海道|  |青森県|  |岩手県|  |宮城県|     ※選択されている項目 な感じになるのでしょうか? それとも私が何か勘違いしているのでしょうか? (selected の使い方が間違ってる??)  |北海道|  |青森県|※  |岩手県|  |宮城県|     ※選択されている項目 ↑↑↑できましたらこのような感じになればとても助かるのですが、 取り合えず現状の暫定対応として、以下の様に記述しております。 ------------------------------    <略> open(CSV,"$file");   #$file=csvファイル while(<CSV>){ @data = split(/,/); #$data[0]=都道府県名保存     ・     ・     ・ print <<"EOF"; <TR><TD>都道府県</TD><TD><select NAME="TDFK"> <option value ="$data[0]">$data[0] <option value ="">----- <option value="北海道">北海道</option> <option value="青森県">青森県</option> <option value="岩手県">岩手県</option> <option value="宮城県">宮城県</option>     ・     ・     ・ ------------------------------ (*.csv の1列目に都道府県の値が書き込みされております= $data[0])  |青森県|※  |-----|  |北海道|  |青森県|  |岩手県|  |宮城県|     ※選択されている項目 以下のように記述すればよいのかと思っていますが、違うのでしょうか。 ------------------------------ <option selected value ="$data[0]">$data[0] <option value="北海道">北海道</option> <option value="青森県">青森県</option> <option value="岩手県">岩手県</option> <option value="宮城県">宮城県</option> ------------------------------ CGIで解決できるのであれば万々歳ですので、 申し訳ありませんが、ご教授の程よろしくお願いいたします。

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

一般的にはそういう場合クッキーを使うのだと思いますが、 この場合だと、書き込みしたCSVファイルも使用できるのじゃないかと思います。

kal1119
質問者

お礼

早速のご回答ありがとうございます。 基本的に(1)で書き込みを行ったファイルを 今度は(2)で読み出しますのでCookieは必要ないかと考えています。 >この場合だと、書き込みしたCSVファイルも使用できるのじゃないかと思います。 すみません、あまりわかってないのでもう少し詳しく教えていただきますでしょうか。 以上、よろしくお願いいたします。

関連するQ&A

  • セレクトメニューの項目をファイルから

    よろしくお願いいします。 セレクトメニューの項目を別に作成しているテキストファイルから読み込みことは可能でしょうか? aaa.txt 北海道,青森県,岩手県,宮城県,・・・ aaa.html-セレクトメニュー  |北海道|  |青森県|  |岩手県|  |宮城県|  | ・   |  | ・   |  | ・   | webサーバー・・・HP-UX web・・・IE CGI開発言語・・・Perl 開発端末・・・windows2000(Tera Term 使用) 以上、よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • セレクトメニューの選択項目変更で入力した値を変更する。

    例 第一選択のセレクトメニューで項目Aを選択。 第二選択で項目Aの数値を取得。 第一選択のセレクトメニューで項目Bを選択。 第二選択で項目Bの数値を取得。 (第二選択はセレクトかテキスト入力の予定です) 取得した値をAもしくはBに代入。 計算式(A*2)+(2/B) もしくは 計算式a (a*2)+10 計算式b (b*2)+10 と言う風に選択項目によって代入位置を変更したいです。 計算式も代入する値も多くあるのでセレクトメニューで選択して その位置を変更したいのですが、どのようにしたらいいのでしょうか? 他に良い方法とかあるものなんでしょうか?? 初心者でサンプル例文を切り張り修正でしか作れません。(-_-;) 専門用語とか詳しく説明されても解らないと思うので、 例文だけでも書いていただいたらありがたいです。 あとはなんとか例文を参考に自分で調べて構文の仕組みを理解するのでお願いします。<(_ _)>

  • セレクトメニューセレクトメニューへのジャンプ

    こんにちは。 セレクトメニューの選択項目に応じて、もう1つのセレクトメニューの内容を変更する方法は大体理解したのですが、 さらにもう一つ、+もう一つ・・・とセレクトメニューの項目をリンクさせて変更することは可能でしょうか? 例えば、 セレクトメニュー(1) 選択   ↓ ジャンプ セレクトメニュー(2) 選択   ↓ ジャンプ セレクトメニュー(3) 選択   ↓ ジャンプ セレクトメニュー(4) 選択   ↓ 検索用CGI実行 クリック というように選ばれた各項目ごとに次のセレクトメニューにジャンプして項目の変更を行いたいです。 参考サンプル等、 どなたか情報をお持ちの方がおりましたら、 よろしくお願いいたします。

  • セレクトメニューで2つの項目や値を渡す方法はありますか?

    良かったら教えてください。 セレクトメニューで2つの項目や値を渡す方法は ありますか? 普通は、 <select name="test"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> と言う感じですが、 「テスト」を選ぶと name="test1" name="test2"の項目で、 value="1111" value="2222" 選択項目は、1つですが、2つの項目、 2つの値を次のCGIに渡す事は、 可能でしょうか? 教えてください。

    • ベストアンサー
    • HTML
  • selectで選ばれた値を別ページのセレクトボックスへ渡す

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

  • INPUTで入力された値やSELECTで選択された値の取得

    以下のようなHTMLで出力されるページにおいて入力された値を取得したいと思っております。 <div id="div1"> 現在<input type="text" name="TXT1" id="TXT1" size="10">が入力されています。 <br> 現在<select size="1" name="SLCT1" id="SLCT1"> <option>項目1</option> <option>項目2</option> <option>項目3</option> </select>が選択されています。 </div> 値を取得するには v1 = document.getElementById("TXT1").value で取得できるのはわかっているのですが たとえば、TXT1に「文字列1」を入力し、SLCT1で「項目2」を選択している状態で、 "現在文字列1が入力されています。現在項目2が選択されています。" のようにDIV1の中に表示されている文字列全体を取得することはできるのでしょうか。 IEでinnerTEXT、FirefoxでtextContentを利用して取得を試みたのですが、うまくいきません。 何かいい方法があればご教授願えますでしょうか。 現在想定している状況ですと、DIVの中に配置されるINPUTやSELECTの数なども不定でして、それら要素のidも不定であります。 よろしくお願いいたします。

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

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

  • 条件を付けたセレクトメニューの値の取得

    JavaScriptで下記の流れの入力フォームを作成しています。 (1)一つ目のセレクトメニューで選択した項目に応じて、もう1つのセレクトメニューの内容を変更する (2)submitボタンを押すと、次のWeb画面で選択した内容を表示する (1)については色々なところのサンプルコードを参考にしつつ、なんとか作成できました。 しかし、(2)は値の受け渡しがうまく出来ずに頭を抱えています。 (unitの値もgroupの値も共に空欄が返ってくる) ◆(1)のコード: 例えばUnit1を選択すると、グループ1(1-1~1-4)が表示され、 Unit2を選択すると、グループ2(2-1~2-4)がセレクトメニューに表示されるというものです。 <TR><TD> <TD><B>Unit</B><BR>  <select name="unit" onchange="groupSet()"> <option value="">-選んでください-</option> <option value="">Unit1</option> <option value="">Unit2</option> <option value="">Unit3</option> </select> <TD><B>Group</B><BR>  <SELECT NAME="group"> <option value="">-選んでください-</option> <option value=""></option> <option value=""></option> <option value=""></option> <option value=""></option> </select> <script> //グループ1の配列 var group1_list=new Array( "-選んでください-","1-1","1-2","1-3","1-4"); //グループ2の配列 var group2_list=new Array( "-選んでください-","2-1","3-2","3-3","3-4"); //グループ3の配列 var group3_list=new Array( "-選んでください-","4-1","4-2","4-3","4-4"); function buSet(){ //オプションタグを連続して書き換える for ( i=1; i<5; i++ ){ //選択分岐 switch (document.selbox.unit.selectedIndex){ case 0: document.selbox.bu.options[i].text="";break; case 1: document.selbox.bu.options[i].text=group1_list[i];break; case 2: document.selbox.bu.options[i].text=group2_list[i];break; case 3: document.selbox.bu.options[i].text=group3_list[i];break; } } document.selbox.bu.selectedIndex=0;} </script> ◆(2)のやりかた request.getParameter("unit")およびrequest.getParameter("group")で値を取得し、 画面への表示&ファイルへの保存を行っていますが、選択したgroup○○○の項目ではなく、空欄を取得しているようなのです・・・ どなたか知恵を貸してください。よろしくお願いします。

  • ページ更新時のセレクトメニューの値

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

  • サーバーのフォルダ名をセレクトの値とする

    こんにちは、よろしくお願いします。 クラインと用のサーバーフォルダ検索フォームを作成したいです。 サーバーのデータ領域内のフォルダをそのままセレクトメニューの項目値にしたいのですが、何かいい方法はありますでしょうか? 【理由】 クラインと側でフォルダの登録・削除が頻繁に行われる(別処理)ため、リアルタイムで取得したい。 一応、フォルダ情報を取得する方法はCGIで考えているのですが、 -------------------- print <<"EOF"; <TR><TD>エリア名:</TD><TD><select name="AREA"> EOF ### エリア名表示処理 ### opendir(DIR, "$AREA"); while($file = readdir(DIR)){ print <<"EOF"; <option value ="$file">$file</option> EOF } closedir(DIR); print <<"EOF"; </select></TD> </TR> EOF -------------------- 同じようなものをあと3つ用意して、 セレクト(1)エリア(フォルダ)   ↓ 選択 セレクト(2)モデル(フォルダ)-セレクト(1)のモデル   ↓ 選択 セレクト(3)タイプ(フォルダ)-セレクト(2)のタイプ   ↓ 選択 セレクト(4)バージョン(フォルダ)-セレクト(3)のバージョン と紐付かせたいのですが、その方法がわかりません。 情報お持ちの方いらっしゃいましたら ご教授願えないでしょうか。 webサーバー・・・HP-UX web・・・IE CGI開発言語・・・Perl 開発端末・・・windows2000(Tera Term 使用) 以上、よろしくお願いいたします。

専門家に質問してみよう