• 締切済み

2つのセレクトボックスで選ばれた結果をショッピングカートに渡したい

同一ページ内に次の様な2つのセレクトボックスが有ります。 それぞれ選択された内容を足してショッピングカートに送りたいのですがどうしたら良いのでしょうか? セレクトボックス1 <option value="aaa">aaa</option> <option value="bbb">bbb</option> <option value="ccc" selected="selected">ccc</option> セレクトボックス2 <option value="100">100</option> <option value="200">200</option> <option value="300" selected="selected">300</option> ●セレクトボックス1→aaaを選択  セレクトボックス2→100を選択  ショッピングカートには「aaa100」で渡す ●セレクトボックス1→cccを選択  セレクトボックス2→200を選択  ショッピングカートには「ccc200」で渡す 全くの初心者ですがよろしくお願いします。

みんなの回答

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

前回も書きましたがショッピングカート(サーバー側)がどういうデータを うけとることができるかというのが問題なのですが・・・ 単純に今回与えられた材料だけで考えれば以下のようなやり方でできます。 <script> function hoge(f){ var c=document.getElementById('itemCode').value; var n=document.getElementById('itemNumber').value if(!c || !n){ alert(選択してくれ); return false; } f.item.value=c+n; return true; } </script> <form onSubmit="return hoge(this)"> ■数量を選択<br> <select id="itemCode"> <option value="aaa">aaa</option> <option value="bbb">bbb</option> <option value="ccc" selected="selected">ccc</option> </select><br> <select id="itemNumber"> <option value="100">100</option> <option value="200">200</option> <option value="300" selected="selected">300</option> </select><br> <input type="hidden" name="amount" value="1"> <input type="hidden" name="action" value="cart_add"> <input type="hidden" name="item" value=""> <input type="image" src="?http://www.xxx.com/img.gif"? alt="カートに入れる" width="50" height="30"> </form> しかし仕様上かなり無理があるでしょう。aaa100~aaa300はあっても、 実はccc200はないとか・・・こまかく希望もでてくるでしょうから。 いっそのことスクリプトなんて使わずにoptgroupを使えば、すっきりするのでは? <form> <select name="item"> <optgroup label="aaa"> <option value="aaa100">aaa100</option> <option value="aaa200">aaa200</option> <option value="aaa300">aaa300</option> </optgroup> <optgroup label="bbb"> <option value="bbb100">bbb100</option> <option value="bbb200">bbb200</option> <option value="bbb300">bbb300</option> </optgroup> <optgroup label="ccc"> <option value="ccc100">ccc100</option> <option value="ccc200">ccc200</option> <option value="ccc300" selected>ccc300</option> </optgroup> </select> </form>

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

ショッピングカート側のインタフェース次第ですね。 どのような引数をとってくれるのか仕様がわからないと微妙です。 javascriptでの処理であれば、あらかじめhidden領域をつくっておき 各セレクトボックスのonchangeイベントでhiddenの値を設定すれば よいでしょう ただし、aaa100やccc200といったデータがなぜ必要になるのでしょうか 2番目のセレクトボックスは型番?数量? もし数量なら、セパレータなしに一つの要素にしてしまったら、 サーバー側で処理が煩雑になるのであまり一般的ではないと思います

view55
質問者

補足

早速のご回答ありがとうございます。 現在は下記の通りセレクトボックスが1つしかありません。 <form action="http://www.xxx.com/index.php" method="post"> <center><table><tr><td> <div align=left>■数量を選択 <select name="itemCode"> <option value="aaa">aaa</option> <option value="bbb">bbb</option> <option value="ccc" selected="selected">ccc</option> </select> <input type="hidden" name="amount" value="1"> <input type="hidden" name="action" value="cart_add"> <input type="image" src="http://www.xxx.com/img.gif" alt="カートに入れる" width="50" height="30"> </div> </td></table></center> </form> ここにもう一つ他の情報のセレクトボックスを設けたいのです。 <option value="100">100</option> <option value="200">200</option> <option value="300" selected="selected">300</option> そして選択された2つのvalue部分を結合してカートに送りたいのです。品番「aaa100」とか・・・品番「ccc200」とか・・・ まだ説明不足でしょうか?

関連するQ&A

  • セレクトボックスの値を増やしたい

    お世話になります。 セレクトボックスのOPTION値を増やしたいのですが、何か良い方法はないでしょうか。 実現したいことは、ボタンを押したときにテキストボックスの値をセレクトボックスの最下部に表示したいということです。 <INPUT TYPE="text" NAME="add_txt" VALUE=""> <SELECT NAME="lst"> <OPTION VALUE="aaa">aaa <OPTION VALUE="bbb">bbb <OPTION VALUE="ccc">ccc </SELECT> <INPUT TYPE="button" NAME="ent" VALUE="実行"> ------------------ この状態からtextに"ddd"という値を入れて実行ボタンを押した後、 <SELECT NAME="lst"> <OPTION VALUE="aaa">aaa <OPTION VALUE="bbb">bbb <OPTION VALUE="ccc">ccc <OPTION VALUE="ddd">ddd </SELECT> このような状態にしたいのですが、なにか方法はありますか。 ご存知の方いましたら、回答お待ちしています。

  • XMLの値をリストボックスで選択したい

    XSLTで悩んでいます・・・ XMLが以下の内容で、 <aaa><bbb>123</bbb></aaa> XSLTでテキストボックスに表示をさせる場合 <input type="text" name="hoge" value="{/aaa/bbb}"> となりますが、 セレクトボックスでXMLと同じ値を選択させたいのです。 <select name="hogesel"> <option value="121"> <option value="122"> <option value="123"> ←これを選択させたい </select> XSLT、JavaScript等使用してselectedが行える方法がありますでしょうか? ご存知の方がいらっしゃいましたらご教授願います。

    • 締切済み
    • XML
  • 2つのセレクトボックスで選択した組み合わせの結果

    社内で個人的に使うためのツールを Google Sites で作成中なのですが、 できれば、セレクトボックスの組み合わせの結果はテキストではなく、 条件に一致した結果でのフローをまとめた画像やGoogleスライドを指定して、 各条件ごとに振り分けて表示させたいと考えています。 ネットで色々と検索しながら試行錯誤した結果、 <textarea> に画像やスライドを反映するのは不可と判断しておりますが、 なにか別の要素を指定することで可能な場合や、 その他に可能な方法があればご教示いただけますと幸いです! コードは下記です。 </head> <!-- javascriptファイル --> <script type="text/javascript"> function check(f){ var arr={ "A":{"aaa":"Aとaaaを選択しました","bbb":"Aとbbbを選択しました"} ,"B":{"aaa":"Bとaaaを選択しました","bbb":"Bとbbbを選択しました"} }; var select1=f.elements["select1"].value; var select2=f.elements["select2"].value; f.elements["C"].value=(arr[select1] && arr[select1][select2])?arr[select1][select2]:""; } </script> <!-- jQuery --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <body> <p class="title">該当する組み合わせを選択してください。</p> <form> <div class="cp_ipselect cp_sl01"> <select name="select1" onchange="check(this.form);"> <option value="">------ 選択肢①を選択してください ------</option> <option value="A">A</option> <option value="B">B</option> </select> </div> <div class="cp_ipselect2 cp_sl02"> <select name="select2" onchange="check(this.form);"> <option value="">------ 選択肢②を選択してください ------</option> <option value="aaa">aaa</option> <option value="bbb">bbb</option> </select> </div> <p class="title2">選択肢①と②の組み合わせの結果</p> <!-- 下の textarea 箇所に各組み合わせごとにテキストではなく、画像やスライドを表示したいです --> <textarea name="C"></textarea> </form> </div> </body> </html>

  • selectのnameが配列の場合

    説明がわかりにくいかもしれませんがよろしくお願いいたします。   セレクトボックスが選択されると、テキストフィールドが変わるというJavaScriptを作成しています。 nameに配列を使った場合、elementsを使用すればいいと言うことまでは分かり1つだけの場合は成功しました。 しかし、同じname(配列)のセレクトボックスとテキストフィールドが複数ある場合は成功しません。 PHPでデータベースに格納する際に、どうしてもセレクトボックスとテキストフィールドは配列にして置かないといけないのですが、この場合どうすれば、成功するでしょうか? 現在以下のようにソースを書いて失敗しています。 ご教授の程よろしくお願いいたします。 ↓↓JavaScript部分 <script> function selectChange(){ var no = document.test1.elements['member[]'].selectedIndex; if(no==1){ document.test1.elements['point[]'].value =0; } else{ document.test1.elements['point[]'].value =""; } } </script> ↓↓HTML部分 <form name='test1'> <select name='member[]' onChange='selectChange()'> <option value='aaa'>aaa</option> <option value='bbb'>bbb</option> <option value='ccc'>ccc</option> </select> <input name='point[]' type='text'> <br> <select name='member[]' onChange='selectChange()'> <option value='aaa'>aaa</option> <option value='bbb'>bbb</option> <option value='ccc'>ccc</option> </select> <input name='point[]' type='text'> </form> //bbbの場合だけ、テキストフィールドのデフォルト値を0にしたい

  • セレクトメニューと複数のテキストボックス連携

    お世話になります。セレクトメニュー1個と複数(2個)の テキストボックスに連携についてお尋ねします。 セレクトメニュー1個の選択肢が「aaa」「bbb」「ccc」とあり、 「aaa」を選んだら、その value がテキストボックス1に「111」が入り、それと同時にテキストボックス2に「アルファベットの1番目」と入り、 「bbb」を選んだら、その value がテキストボックス1に「222」が入り、それと同時にテキストボックス2に「アルファベットの2番目」と入り、 「ccc」を選んだら、その value がテキストボックス1に「333」が入り、それと同時にテキストボックス2に「アルファベットの3番目」と入る、 ようにしたいのですが、どのような記述にしたらよろしいのでしょうか? よろしくお願い致します。

  • セレクトボックスのvalue値でactionを変更

    いつもお世話になっております。 メニュー(セレクトボックス)のvalue値によってフォームのactionの内容を変更する方法を探しています。 【JavaScript】ラジオボタンにより、formのaction内容を変更 http://okwave.jp/qa/q6003560.html という質問を見つけ、こちらのラジオボタンをセレクトボックスに変更したのですが、動作しません。 javascriptを変更しなくてはいけないのだとは思うのですが、まったくの素人のため、検討もつかず、相談に伺いました。 <script type="text/javascript"> <!-- function check(f){ var r=f.elements["aaa"]; var flg=false; var list={"A":"aaa.php","B":"bbb.php","C":"ccc.php"}; for(var i=0;i<r.length;i++){ if(r[i].checked){ f.action=list[r[i].value]; flg=true; break; } } } //--> </script> </head> <body> <form action="" onSubmit="return check(this)"> <input name="key" type="text" value=""> <select name="aaa"> <option value="" selected>Category</option> <option value="A">AAA</option> <option value="B">BBB</option> <option value="C">CCC</option> </select> <input type="button" value="Go"> </form> </body> </html> お分かりになる方、教えていただけると助かります。 よろしくお願いいたします。

  • javascriptでセレクトボックスを動的に

    javascriptでセレクトボックスの"selected"を動的に変更する方法を教えてください>< 下記のselectedを"10"から"50"に変更したいのですが、 某ASPサービスの環境下での作業のため制約があり直接変更できません。 <body onload="event"> <select name="select"> <option value="10" selected="selected">10件</option> <option value="30">30件</option> <option value="50">50件</option> </select> そこで、JavaScriptで何とかしようと思うのですが、 <select>~ </select>の間(selectタグ含む)は、ASPサービスの制約でIDやclassを入れることもできず、 変更できるのは、body開始タグ部分、headerタグ内、body内(一部)です。 ページを読み込んだ際に、「50件を選択」、「10件からselected外す」状態にしたいです。 いろいろサイトを見てなんとなくできそうな気はするのですが、 スキル的に初心者レベルのため、わかりませんでした。 何卒よろしくお願いします!

  • select文の表示結果を置き換える

    sql初心者です、皆様ご教授お願いいたします。 以下のようなselect文の結果が・・・ select aaa,bbb,ccc from XXX order by aaa 以下のようになった場合・・・ 埼玉 100 AAA 東京 200 BBB 東京 200 CCC 東京 300 CCC 千葉 400 CCC 以下のような表示を行う事はsqlで可能でしょうか? 埼玉 100 AAA 東京 200 BBB (〃)(〃) CCC (〃) 300 (〃) 千葉 400 (〃) つまり「一つ前のレコードと同じ結果だった項目は”〃”等の任意の文字列を出力する」です。 宜しくお願いいたします。

  • セレクトメニューが・・・

    CGIでHPをつくり、そのHPから入力HPへ飛びフォームの値をもとのHPに返すということをやっているのですが、ここで、セレクトメニューのvalueの値によってはそこのHPから入力のHPに飛べなくなるという現象がおきてます。 1部ですが、例を示すと・・・ print "<select name='place'>"; print "<option value='aaa:3821'>aaa</option>"; print "<option value='bbb3822'>bbb</option>"; print "<option value='ccc:3801'>ccc</option>"; print "<option value='ddd:3802'>ddd</option>"; print "</select>"; print "<br>"; となっていて、ここで小文字と数字の間に[\n]を1つでも入れるとエラーにはならずしっかり飛ぶことができますが、今のように全て文字と数字だけではなぜかエラーが起こってしまっています・・・ なぜなんでしょうか・・・・?

    • 締切済み
    • CGI
  • selectタグの項目を制御する

    フォーム内のプルダウンの項目を制御する方法がわからなくて困っています。 form1というフォーム内にプルダウンが3つあります。 <select name="select_1"> <option value="AAA">AAA</option> <option value="BBB">BBB</option> <option value="CCC">CCC</option> </select><br/> <select name="select_2"> <option value="AAA_1">AAA_1</option> <option value="AAA_2">AAA_2</option> <option value="BBB_1">BBB_1</option> <option value="CCC_1">CCC_1</option> </select><br/> <select name="select_3"> <option value="AC">AC</option> <option value="AB">AB</option> <option value="B_1">B_1</option> <option value="B_2">B_2</option> <option value="B_3">B_3</option> </select><br/> ●まず、select_1がAAAなら、select_2でAAA_1とAAA_2のみ選択できるようし、select_2で、AAA_1が選択されたらselect_3にACをAAA_2が選択されたらABを表示。 ●select_1でBBBが選択されたら、select_2にBBB_1のみを表示し、変更不可にする。そして、select_3にABC,B_1,B_2,B_3を表示。 ●select_3でCCCが選択されたら、select_2にCCC_1のみを表示して変更不可にし、select_3にACのみを表示して変更不可にする。 こんな感じにしたいのですが、どうもうまく出来ません。 考えたのは、各selectタグにonchange=change_1(form1)として、関数を呼び出し、 no= form1.select_1.selectedIndex; noが0なら thisForm.select_2.length = 2; //オブジェクトを2にする thisForm.select_2.options[0].value = "AAA_1"; の様にしたのですが、はじめに表示したoptionを消したりする方法や変更不可にする方法ってあるんでしょうか?また、ほかの方法など、どなたかわかる方がいましたら、よろしくお願いいたします。

専門家に質問してみよう