• ベストアンサー

リストボックスに追加した全ての値を取得したいのですが・・・

xruzの回答

  • xruz
  • ベストアンサー率50% (72/143)
回答No.2

おはようございますaki_oさん、xruzです。 1.submitで送付されるデータは、通常submitが含まれるformデータです。 2.postで送付されるデータはtext値でなくvalue値です。 3.サーバ側のプログラムないしはスクリプトはmultivalue(複数値)を取得できる記述になっていますか。 以上の3点をもう一度確認してくださいね。

aki_o
質問者

お礼

つくりたかったものは完成いたしました。 いろいろご教授ありがとうごさいました。 たいへん勉強になりました。

関連するQ&A

  • リストボックスの内容追加と削除

    質問QNo.172288を参考にプログラムを作成しました。 そこで下記のような処理をしたいのですがどのように処理をしていいのか解りません。 Bというリストボックスの値を「追加」ボタンを押すとAのリストボックスに追加するときにBのリストボックスより選択した値は削除(非表示)あるいはAのリストボックスに既に存在する同じ値はAリストボックスには追加しない。(重複チェックみたいな感じです) それと、Aというリストボックスの値を「戻す」ボタンを押すと選択されている値をAのリストボックスより削除し、Bのリストボックスに表示させる JavaScriotでは難しいいですか。ご教授いただけないでしょうか 宜しくお願いします <form name=frm method=post action=/beta/index.php> <td align=right> <select name=A size=8 multiple> <option value=""></option> </select> </td> <td align=center> <input type=button value="← 追加" onClick="addItem();"> <p> <input type=button value="戻す →" onClick="delItem();"> <td align=left> <select name=B size=8 multiple> <option>AAAAA</option> <option>BBBBB</option> <option>CCCCC</option> </select> </td> function addItem() { A = document.frm.A; B = document.frm.B; for (var i=0; i<B.options.length; i++) { if (B.options[i].selected) { A[A.options.length] = new Option(B.options[i].text,B.options[i].value); } } } function delItem() { B = document.frm.A; A = document.frm.B; for (var i=0; i<B.options.length; i++) { if (B.options[i].selected) { A[A.options.length] = new Option(B.options[i].text,B.options[i].value); } } }

  • リストボッックスからリストボックスへの値を追加したい

    ASPのプログラムの中に Bというリストボックスの値を「追加」ボタンを押すとAのリストボックスに 追加できるようなスクリプトを作りたいのですが、 Request.Formで同ページにPOSTでsubmitして送っていたのですが それだと何度も追加ができなくなってしまうので他のやり方にしたいのです。 いろいろ調べてVBScriptやJavaScriptでできるのではないかというのまでは わかったのですが、どうもやり方がいまいちわかりません。 できればJavaScriptのほうでやりたいと思うのですがどなたか良い方法を ご教授いただけないでしょうか。 よろしくおねがいします。 <select size="5" multiple name="A"> </select><input type="submit" value="追加"><select size="5" multiple name="B"> <option>AAAAA</option> <option>BBBBB</option> <option>CCCCC</option> </select>

  • Javascriptの動的リスト作成について

    Javascriptの動的リスト作成について お世話になっています。 Javascriptで選択リストを動的に変えたいと思っています。 また、Javascriptで作成したリストは、multipleとして複数選択できるようにしたいと考えています。 そこで、下記のようにスクリプトを書きました。リスト2(smallwheretag)が1つのみ選択を許すときは、うまくいったのですが、multipleにするためにnameを配列にしたところ、うまくリストが作成できなくなってしまいました。 なにかスクリプトに変更が必要なのでしょうか?ご教授お願いいたします。 <HTML部> <select name="bigwheretag[]" onchange="javascript:listChange(this.value);"> <option value="">検索項目</option> <option value="11%">自然</option> <option value="12%">街</option> <option value="13%">家庭</option> </select> <select name="smallwheretag[]" multiple> <option value="">大項目を選択して下さい</option> </select> <Javascript部> var where1_text = new Array("川", "海", "山", "滝", "その他"); var where1_value = new Array("1101", "1102", "1103", "1104", "1199"); flag1 = document.form.bigwheretag.value; if (flag1=="11%") { document.form.smallwheretag.length = where1_text.length; for(var i=0; i<where1_text.length; i++) { document.form.smallwheretag.options[i].text = where1_text[i]; document.form.smallwheretag.options[i].value = where1_value[i]; } }・・・・・・・・以下同様

  • リストボックスの値をコレクに全て格納してから選択するには?

    お世話になります。 リストボックスの値をコレクションに全て格納してからoption値で選択する内容をきめようと思っています。ですが僕のコードでは For i = 0 To WebBrowser1.Document.Forms("form1").DomElement("options").Length - 1 でエラーがでてしまい、選択できません。どこが間違っているのでしょうか?教えてください。 フォームにはwebbrowser1つとコマンドボタン1つです。 <html> <body> <FORM NAME="form1"><SELECT size="1" name="sel1" > <OPTION value="21">データ1</OPTION> <OPTION value="22">データ2</OPTION> <OPTION value="23">データ3</OPTION> <OPTION value="24">データ4</OPTION> <OPTION value="25">データ5</OPTION> <OPTION value="26">データ6</OPTION> </SELECT></FORM></body> </html> -------------------------------------------- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i As Integer Dim colOpt As Collection WebBrowser1.Navigate("上のHTML") colOpt = New Collection For i = 0 To WebBrowser1.Document.Forms("form1").DomElement("options").Length - 1 colOpt.Add(i, WebBrowser1.Document.Forms("form1").DomElement("Options(i)").Value) Next i WebBrowser1.Document.Forms("form1").DomElement("Options( colOpt('22'))").Selected = True TextBox1.Text = WebBrowser1.Document.Forms("form1").DomElement("Options( colOpt('22'))").Selected End Sub

  • リストボックスを連動させて・・・その2

    直前の質問で下記の回答をいただいたものです。 質問では2つのリストボックスを連動させたサンプルの回答をいただきましたが、ひょっとして、リストボックスの個数が何個でも対応させることはできないでしょうか。つまり、リストボックスのnameなどをscript部分に記さずに・・。 ここまでサンプルをもらっても改造できないので質問。 (^^; ■JavaScript <SCRIPT language=JavaScript> <!-- strBase = "test.cgi?hinmei=denwa "; strS1 = "&s1="; strS2 = "&s2="; function set(){  strS1b = strS1  strS2b = strS2   if (document.form.s1.options[document.form.s1.selectedIndex].value)   strS1b += document.form.s1.options[document.form.s1.selectedIndex].value;  if (document.form.s2.options[document.form.s2.selectedIndex].value)   strS2b += document.form.s2.options[document.form.s2.selectedIndex].value;  strURL = strBase + strS1b + strS2b;  document.form.text.value = strURL; } //--> </SCRIPT> ■フォーム <FORM NAME="form"> <select name="s1" onChange="set()"> <OPTION VALUE="" SELECTED>↓【選択して下さい】</OPTION> <OPTION VALUE="big">big</OPTION> <OPTION VALUE="small">small</OPTION> </SELECT> <select name="s2" onChange="set()"> <OPTION VALUE="" SELECTED>↓【選択して下さい】</OPTION> <OPTION VALUE="red">red</OPTION> <OPTION VALUE="white">white</OPTION> </SELECT> <INPUT TYPE="text" SIZE=50 NAME="text"> </FORM>

  • セレクトボックス連動

    過去の質問にありましたソースを参考にセレクトボックスの 連動タイプをphpを絡めて作っています。 DBから取出した menua に入る値を初期値に設定したいのですが うまくいきません。 menua には AAA、BBB、CCCが入ります。 初期値を変えるにはどのようにすればいいのでしょうか。 また、menua以外にもmenubの初期値も変える事が出来るのでしょうか。 以下ソースになります。 <? $menua = "BBB"; ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <script type="text/javascript"> <!-- data = [ ["AAA", {key:"A01",value:101}, {key:"A02",value:102}, {key:"A03",value:103}], ["BBB", {key:"B01",value:201}, {key:"B02",value:202}, {key:"B03",value:203}], ["CCC", {key:"C01",value:301}, {key:"C02",value:302}, {key:"C03",value:303}] ]; // --> </script> <script type="text/javascript"> <!-- window.onload=function (){ for(var i=0; i<data.length; i++){ document.FORM1.menua.options[i] = new Option(data[i][0],data[i][0]); } setSubMenu(0); }; function setSubMenu(no){ document.FORM1.menub.length=0; for(var i=1; i<data[no].length; i++){ document.FORM1.menub.options[i-1] = new Option(data[no][i].key,data[no][i].value); } } // --> </script> </head> <body> <form name="FORM1"> <select name="menua" onchange="setSubMenu(this.selectedIndex)"> </select> <select name="menub" > </select> </form> </body> </html>

  • JavaScriptでリストボックスに追加した値を渡したい

    リストボックスが2つあり、一方には候補一覧があり、追加ボタンで もう一方に選択項目を追加していくようなフォームを作りました。 で、選択項目をsubmitでサーバへ渡したいのです。 いろいろ調べると、Hidden項目にセットしておく方法があることは分かった のですが、具体的にどうしたらよいのでしょうか? 以下、長いですが、ソースです。 <script language="JavaScript"> //グローバル変数の設定 //コンボボックスの表示内容 cbnum = 2; //コンボボックスの項目数 cbdata = new Array(cbnum); cbdata[0] = "グループ"; cbdata[1] = "メンバー"; lbnum1 = 2; lbdata1 = new Array(lbnum1); lbdata1[0] = "TEST_G1"; lbdata1[1] = "TEST_G2"; lbnum2 = 2; lbdata2 = new Array(lbnum2); lbdata2[0] = "TEST_USER1"; lbdata2[1] = "TEST_USER2"; //lb1表示用 function ch_lb1(fm) { var selv = fm.cb1.options[fm.cb1.selectedIndex].value; if(selv == 0) { fm.lb1.length = lbnum1 for(i=0; i < lbnum1; i++) fm.lb1.options[i].text = lbdata1[i]; } else { if(selv == 1) { fm.lb1.length = lbnum2 for(i=0; i < lbnum2; i++) fm.lb1.options[i].text = lbdata2[i]; } else { fm.lb1.length = lbnum3 for(i=0; i < lbnum3; i++) fm.lb1.options[i].text = lbdata3[i]; } } } //lb2表示用 function add_lb2(fm) { var lb1len = fm.lb1.length; var lb2len = fm.lb2.length; var aditem = new Array(); for(i=0,j=0; i < lb1len; i++) { //選択されているかのチェック if(fm.lb1.options[i].selected) { flg = 0; for(k=0; k < lb2len; k++) { tmp = fm.lb1.options[i].text; //同じ項目がすでに登録されていないかのチェック if(tmp == fm.lb2.options[k].text) { flg = 1; break; } } if(flg == 0) { aditem[j] = fm.lb1.options[i].text; j++; } } } for(i=0; i < aditem.length; i++) { fm.lb2.length = lb2len + 1; fm.lb2.options[lb2len].text = aditem[i]; fm.lb2.options[lb2len].value = i; lb2len++; } } //lb2削除用 function del_lb2(fm) { var selnum = fm.lb2.selectedIndex var selv; var lb2len = fm.lb2.length; var narr = new Array(lb2len-1); var tmp; if(selnum == -1) alert("何も選択されていません。"); else { selv = fm.lb2.options[selnum].text; for(i=0, j=0; i < lb2len; i++) { tmp = fm.lb2.options[i].text; if(selv != tmp) { narr[j] = tmp; j++; } } fm.lb2.length = narr.length; for(i=0; i < narr.length; i++) { fm.lb2.options[i].text = narr[i]; fm.lb2.options[i].value = i; } } } </script> <form name="fm16"> <table border="0"> <tr><td width="150" bgcolor="rosybrown"><font color="white"><center>選択対象</font></center></td> <td width="150" bgcolor="rosybrown"><font color="white"><center>候補一覧</center></font></td> <td bgcolor="rosybrown"> </td> <td width="150" bgcolor="rosybrown"><font color="white"><center>選択</center></font></td></tr> <tr><td bgcolor="linen"> <center><select name="cb1" onChange="ch_lb1(this.form);"> <script language="JavaScript"><!-- for(i=0; i<cbnum; i++) { if(i == 0) document.write ('<option value="' + i + '" selected>' + cbdata[i]); else document.write ('<option value="' + i + '">' + cbdata[i]); } // --></script> </select></center></td> <td bgcolor="linen"> <center><select name="lb1" size="6" multiple> <script language="JavaScript"><!-- for(i=0; i<lbnum1; i++) { if(lbnum1 > i) document.write ('<option value="' + i + '">' + lbdata1[i]); else document.write ('<option value="' + i + '">'); } // --></script> </select> <p></center></td> <td bgcolor="linen"><input type="button" name="bn2" value="追加 →" onClick="add_lb2(this.form);"><br><br><br> <input type="button" name="bn3" value="← 削除" onClick="del_lb2(this.form);"></td> <td bgcolor="linen"> <center><select name="lb2" size="6"> </select> </center></td> </tr> </table> <input type=submit value="送信"> </table> </form>

  • リストボックス全選択について

    JavaScriptについて質問です。 リストボックスA,B と プルダウンC という画面項目があると仮定し、 submitボタンを押下したとき、 リストボックスA,Bの項目全てが全選択され、プルダウン項目はそのままにしたいと考えております。 下記のソースのように作成したのですが、 リストボックスが全選択されるところまでは良いのですが、 プルダウン項目が最後の項目が選択された状態になってしまいます。 リストボックスだけが全選択され、プルダウン項目はそのままにするにはどうしたら良いでしょうか。 かなり困ってます。 どなたか助けてください。。 以下ソースです。 <html> <head> <script language="JavaScript"> <!-- function selectAll(){  var str = document.getElementsByTagName("option"); for(i=0;i<str.length;i++){ str[i].selected = true; } } //--> </script> </head> <body> <table> <tr> <td> リストA<br> <select name="listboxA" multiple> <option value="サンプル1">サンプル1</option> <option value="サンプル2">サンプル2</option> <option value="サンプル3">サンプル3</option> </select> </td> <td> リストB<br> <select name="listboxB" multiple> <option value="サンプル4">サンプル4</option> <option value="サンプル5">サンプル5</option> <option value="サンプル6">サンプル6</option> </select> </td> <td> プルダウンC<br> <select name="Pdown"> <option value="サンプル7">サンプル7</option> <option value="サンプル8">サンプル8</option> <option value="サンプル9">サンプル9</option> </select> </td> </tr> </table> <br> <input type=submit value="送信" onClick="selectAll()"> </body> </html>

  • option属性の値取得について

    こんばんは。 オプションタグの値取得の方法について質問があります。 opitonタグのvalue属性の値を取得する際、今までは方法Aのコードを用いていましたが、 最近調べものをしていますと、方法Bのコードで取得するのが正しいと知りました。 方法Aでの値の取得についてはGoogle等で検索しましたが、見当たりませんでしたので、 私の思い込みで記述していたのではないかと思われます。 しかしながら、方法Aであっても方法Bであっても取得する値に差異は見られませんでした。 なぜ方法Aでも動作するのでしょうか? 以上、よろしくお願いいたします。 OS  :WinXP SP2 ブラウザ:IE6.0 //------------------------------------------------------------------------ // index.htm //------------------------------------------------------------------------ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>  <head>   <meta http-equiv="Content-Script-Type" content="text/javascript" />   <script language="javascript" src="./main.js"></script>  </head>  <body>   <form name="chara">    <select name="job">     <option value="j01">0</option>     <option value="j02">1</option>     <option value="j03">2</option>     <option value="j04">3</option>     <option value="j05">4</option>    </select>    <input type="button" value="func()" onclick="func()" />   </form>  </body> </html> //------------------------------------------------------------------------ // main.js //------------------------------------------------------------------------ function func() {  var Job1 = document.chara.job.value;       // 方法A  var Job2Index = document.chara.job.selectedIndex;  var Job2 = document.chara.job.options[Job2Index].value;   // 方法B  alert( "Job1: " + Job1 );  alert( "Job2: " + Job2 ); }

  • FORMデータを配列としてそうしんしたいのですが・・・

    JavaScriptでセレクトボックス内の値が変化したらもう一つあるセレクトリスト内の値が変更されるように組みました。 以下コード。 ----------------------- <HTML> <head> <script type="text/JavaScript"> <!-- menuItem = [["A","B","C","D","E"],       ["1","2","3"], ["あ","い","う","え","お","か"]]; function setMenuItem(n) { len = document.myForm.works.options.length; for (i=len-1; i>=0; i--) { document.myForm.works.options[i] = null; } for(i=0; i<menuItem[n].length; i++) { document.myForm.works.options[i] = new Option(menuItem[n][i],menuItem[n][i]); } } } //--> </script> </head> <body> <FORM name = "myForm"> <SELECT name="list" onChange="setMenuItem(this.selectedIndex)"> <option value="list1">リスト1 <option value="list2">リスト2 <option value="list3">リスト3 </SELECT> <SELECT name="works[]" MULTIPLE> <OPTION>A <OPTION>B <OPTION>C <OPTION>D <OPTION>E </SELECT> </FORM> </BODY> </HTML> ----------------------- でセレクトリスト内のデータを配列として送信したいのですがうまくいきません。 セレクトリストのnameはworks[]にしたら動作すらしなくなりました。 どなたかご教授願います。