
ちょっと前に別の方の同名の質問があり、正しい回答が出る前に、例によって不適切な回答で閉め切られてしまったため、失礼とは存じますが改めて質問させていただきます。
<form id="enqe" action="/hoge/enqe" method="post">
<label for="group_a">好きなフレームワーク</label>
<input type="radio" name="group_a" value="a1">cake php</input>
<input type="radio" name="group_a" value="a2">fuel php</input>
<input type="radio" name="group_a" value="a3">symphony</input>
<label for="group_b">使っているOS</label>
<input type="radio" name="group_b" value="b1">windows</input>
<input type="radio" name="group_b" value="b2">macintosh</input>
<input type="radio" name="group_b" value="b3">linux</input>
<label for="group_c">使っているCPU</label>
<input type="radio" name="group_c" value="c1">ivy bridge</input>
<input type="radio" name="group_c" value="c2">sandy bridge</input>
</form>
のような選択肢があって、選択値を配列で送信したいです。
配列で受けたい理由は、送信側のフォーム(項目、グループ分け)が逐次追加変更される予定で、それに合わせてDBだけを変更して対応したいからです。
したがって、「毎度サーバサイドで対応しろ」という回答は困ります。
<input type="hidden" name="gval[]" value="a1" />
<input type="hidden" name="gval[]" value="b2" />
<input type="hidden" name="gval[]" value="c3" />
という内容を生成して送信すればいいのはわかりますが、どう記述したらいいかがわかりません。
いちおうjQueryで、
$('form#enqe').submit(function(){
// $(this).find("input[type='radio']"); で、<input type="radio">を取得
});
まではわかりましたが、jQueryに疎く、その先がわかりません。
識者の方々のお力をお借りできれば幸いです。
No.2ベストアンサー
- 回答日時:
通常版で書き換えてみました。
jQuery('#enqe').submit(function(){
var that = this;
jQuery('input[type="radio"]:checked','#enqe').each(function(i){
$("<input>").attr({
'type':'hidden',
'name':'hoge['+i+']'
}).val(jQuery(this).val()).appendTo(that);
});
return true;
});
これです、これです!
丁寧にも、
<input type="hidden" name="hoge[0]" value="a1"/>
<input type="hidden" name="hoge[1]" value="b1"/>
<input type="hidden" name="hoge[2]" value="c1"/>
とかになってます。サーバによっては、こうじゃないとうまく転送値を配列として判定できないものもあるようで。
本当に有難うございます(別件のご回答も含めて)厚く御礼申し上げます。
No.1
- 回答日時:
sendデータを作ってあげこんな感じですかね?
'hoge[]'が配列していです。
jQuery('#enqe').submit(function(){
var sendData = [];
jQuery('input[type="radio"]:checked','#enqe').each(function(){
sendData[sendData.length] = jQuery(this).val();
});
jQuery.post(jQuery('#enqe').attr('action'), { 'hoge[]': sendData });
return false;
});
この回答への補足
回答いただきありがとうございます。
なるほど。。Ajaxではそんな風に遷移するのですね。。
全く申し訳ないのですが、今回、サーバサイドの事情で、Ajaxを使った更新ではなく、通常のsubmitで遷移したいのです。
説明が悪くて申し訳ありません。
ひきつづき、アドバイスなどありましたらよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ラジオボタンにタブインデック...
-
return trueとreturn falseの用...
-
プルダウンで選択すると、DBの...
-
hiddenのvalueの値を変えたい
-
JavaScriptで特定のtdタグにcla...
-
onchangeイベントを強制的に発...
-
特定<table>内の<td>の色を変える
-
CSVファイルを読みこみ、プルダ...
-
任意の<DIV></DIV>の中に計算結...
-
jQueryのプラグイン「Tablesort...
-
<select> をmultiple にしてい...
-
ボタンかリンクをクリックする...
-
Selectボックスの幅を自動で広...
-
二つの入力欄に、同時に同じ文...
-
jQuery セレクトボックスで選択...
-
追加ボタンを押した際に ok ボ...
-
history.backの前に値をクリア...
-
チェックボックスのON/OFFでVal...
-
<JavaScript>tableタグを入力不...
-
フォーム内のボタンをまとめてd...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ラジオボタンにタブインデック...
-
javascript作成してます。ラジ...
-
Javascriptを使って動的にラジ...
-
ラジオボタンでdisabledとchecked
-
ラジオボタンのチェックが外れ...
-
CGI.pmでラジオボタンを思い通...
-
文字列を表示/非表示させつつ、...
-
リセットボタンでクリアできな...
-
データベースの値を判断してラ...
-
ラジオボタンのValueを受け取り...
-
ラジオボタンの選択によってチ...
-
ラジオボタンとif文
-
ログ入力支援ツールの作成方法
-
ラジオボタンのチェック数に応...
-
2項目計算って可能でしょうか?
-
JavaScript フォームでのラジオ...
-
Formのラジオボタンリセット方法
-
チェックボックス とラジオボ...
-
【javascript】firefoxでの、al...
-
ラジオボタンを使って、検索ペ...
おすすめ情報