質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

3回答

26127閲覧

HTMLフォームで複数のnameを扱う?

panko

総合スコア14

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2016/12/14 06:31

HTMLのフォームを作成しています。
以下で、「いちご」と「りんご」は同じAチームの所属(チームコードは001)、「みかん」はBチームの所属(チームコードは002)です。このままだと、いちごとみかんのnameがかぶってしまいますので、チームコードも合わせてCGIに渡したいのですが、どういった方法で実装が可能でしょうか?

私の考え方だと「name=001_0001」とチームコードもnameに持たせる程度しか考えつかないのですが、もっとよいやり方があるような気がしています。
ちなみに受け取るCGIはshellで書いています。

html

1<tr> 2 <td>いちご</td> 3 <td><input type="radio" name="0001" value="1" checked>あり<td> 4 <td><input type="radio" name="0001" value="0" >なし<td> 5 </tr> 6 <tr> 7 <td>りんご</td> 8 <td><input type="radio" name="0002" value="1" checked>あり<td> 9 <td><input type="radio" name="0002" value="0" >なし<td> 10 </tr> 11 <tr> 12 <td>みかん</td> 13 <td><input type="radio" name="0001" value="1" >あり<td> 14 <td><input type="radio" name="0001" value="0" checked>なし<td> 15 </tr>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

送り先次第ですがPHPあたりだと配列風にnameをつけると処理がらくです

PHP

1<form> 2<table> 3<tr> 4 <td>いちご</td> 5 <td><input type="radio" name="team[0001][0001]" value="1" checked>あり<td> 6 <td><input type="radio" name="team[0001][0001]" value="0" >なし<td> 7 </tr> 8 <tr> 9 <td>りんご</td> 10 <td><input type="radio" name="team[0001][0002]" value="1" checked>あり<td> 11 <td><input type="radio" name="team[0001][0002]" value="0" >なし<td> 12 </tr> 13 <tr> 14 <td>みかん</td> 15 <td><input type="radio" name="team[0002][0001]" value="1" >あり<td> 16 <td><input type="radio" name="team[0002][0001]" value="0" checked>なし<td> 17 </tr> 18</table> 19<input type="submit" value="go"> 20</form> 21<?PHP 22print_r($_GET);

投稿2016/12/14 06:44

yambejp

総合スコア114821

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

panko

2016/12/16 13:44

ありがとうございます。一番ベーシックでわかりやすい方法と思いました。
guest

0

応用が利かせやすい方法としては、
hidden に動的に値を渡すという方法もありかなと思います。

選択されたラジオボタンに応じて、
data-team の値を hidden にセットします。

(※ data-** の要素属性は HTML5 から追加された仕様です。)

HTML

1<input type="hidden" name="team" value=""> 2<table> 3<tr> 4 <td>いちご</td> 5 <td><input type="radio" name="0001" value="1" data-group="fruit" data-team="001" checked>あり<td> 6 <td><input type="radio" name="0001" value="0" data-group="fruit" data-team="001" >なし<td> 7 </tr> 8 <tr> 9 <td>りんご</td> 10 <td><input type="radio" name="0002" value="1" data-group="fruit" data-team="001" checked>あり<td> 11 <td><input type="radio" name="0002" value="0" data-group="fruit" data-team="001" >なし<td> 12 </tr> 13 <tr> 14 <td>みかん</td> 15 <td><input type="radio" name="0001" value="1" data-group="fruit" data-team="002" >あり<td> 16 <td><input type="radio" name="0001" value="0" data-group="fruit" data-team="002" checked>なし<td> 17 </tr> 18</table>

Javascript

1// jQuery ですが…。 2$(function() { 3 $("input[data-group=fruit]").change(function() { 4 // 選択されたラジオボタンの data-team の値を hidden:team にセット 5 var team = $(this).attr("data-team"); 6 $("input[name=team]").val(team); 7 }); 8});

投稿2016/12/14 08:25

編集2016/12/14 08:26
MEBITUS

総合スコア83

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

panko

2016/12/16 13:46

こんな仕様があることは知りませんでした。ベストアンサーではありませんが、機会があれば使ってみたいと思います!
guest

0

チーム単位で1つだけしか選べない・・・というような制限があったら
こんなコードもあるかなと思いました。

test.html --- <html> <body> <form action="test.php" method="POST"> <table> <tr> <td>いちご</td> <td><input type="radio" name="0001[]" value="1.1_1" checked>あり<td> <td><input type="radio" name="0001[]" value="1.1_0" >なし<td> </tr> <tr> <td>りんご</td> <td><input type="radio" name="0001[]" value="1.2_1" checked>あり<td> <td><input type="radio" name="0001[]" value="1.2_0" >なし<td> </tr> <tr> <td>みかん</td> <td><input type="radio" name="0002[]" value="2.1_1" >あり<td> <td><input type="radio" name="0002[]" value="2.1_0" checked>なし<td> </tr> </table> <input type="submit"> </form> </body> </html>
test.php --- <?php var_dump($_POST);

動かしてみたら違和感だらけのページになりましたけど・・・
いちごとりんごの4つのチェックボックスのうち、1つしか選べないですね。
お試しプログラムなので無視してください。

投稿2016/12/14 07:35

individual

総合スコア14

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

panko

2016/12/16 13:45

「いちご」「りんご」「みかん」それぞれで「あり」「なし」を選びたいので、すみませんがこちらの要望と少し違うようです。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問