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

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

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

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

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

Q&A

解決済

3回答

617閲覧

HTMLフォームで複数のnameのvalueを1つにする方法

MeB

総合スコア104

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

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

0グッド

2クリップ

投稿2017/11/15 03:48

編集2017/11/15 05:52

タイトルがわかりにくくてすみません。
やりたいことは以下です。

html

1<tr>AAA</tr> 2<tr> 3 <td><input type="checkbox" name="01" value="1" >01<td> 4 <td><input type="checkbox" name="02" value="1" >02<td> 5 <td><input type="checkbox" name="03" value="1" >03<td> 6 <td><input type="checkbox" name="04" value="1" >04<td> 7 <td><input type="checkbox" name="05" value="1" >05<td> 8 <td><input type="checkbox" name="06" value="1" >06<td> 9 </tr>

name(01,02,03,04,05,06)とvalue(1)はsortで使用しているため変更不可です。
が、このsortが正常に動く形であれば変更、追記可能です。受け取り側は以下のPHPで受け取っています。
maneとvalueとは別にいずれかにチェックされた時に何か共通の値を飛ばしたいです。
受け取り側のPHPは現在

php

1$a = $_GET['01']; 2echo $a;

なのですが、複数上記のフォームの場合は01,02,03,04...多数あります。この場合どのよう記述したら良いでしょうか?

その値がaの場合
・name01にチェックが入っている場合 → aを遷移先に渡す(できるなら上記のPHPのようにGETで取れると嬉しいです…)
・name01とname02にチェックが入っている場合 → aを遷移先に渡す
・name02、name05、name06にチェックが入っている場合 → aを遷移先に渡す
全ての場合で1つだけaを返す形にしたいです。

わかりにくくて申しわけございません。都度追記、訂正いたします。
ご教授のほどよろしくお願いいたします。

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

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

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

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

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

maisumakun

2017/11/15 04:08

「どれにチェックがはいっても、複数チェックが入っても 1つの値だけ返したいです」とありますが、フォームの中身は無視して同じ結果で送信してもかまわない、という意味でしょうか。
m.ts10806

2017/11/15 04:17

checkboxでなければならない理由があるのでしょうか?
MeB

2017/11/15 05:12 編集

フォームの中身は無視しても構いません。1つでもチェックが入って入れば「a」が帰ってくる。のような形です
m.ts10806

2017/11/15 05:21

要件・仕様は漏れなく記載すべきと思います。この手の問題は、枝葉のところだけを書いても的確な回答は得られません。
MeB

2017/11/15 05:34

たった今編集しました。
guest

回答3

0

ベストアンサー

01,02,03,04...多数

考え方がまちがってますね
そもそもなんというパラメータ名で送られてきているかわからないのですから
参照できません。($_GETを走査すればいいんですけど)

逆に沢山おくられてきているなら、好きな1個だけ参照してあとは無視すればいいのです。

また以下のように同じ名称にしておけば最後に選ばれたものが参照されます。

PHP

1<?PHP 2print_r($_GET); 3?> 4<form method="get"> 5<input type="hidden" name="x" value="0" > 6<input type="checkbox" name="x" value="1" >01<br> 7<input type="checkbox" name="x" value="2" >02<br> 8<input type="checkbox" name="x" value="3" >03<br> 9<input type="checkbox" name="x" value="4" >04<br> 10<input type="checkbox" name="x" value="5" >05<br> 11<input type="checkbox" name="x" value="6" >06<br> 12<input type="submit" value="go"> 13</form>

sample

とりあえず手抜きですがjavascriptでサンプル付けておきます
トリガーをsubmitにしてありますが、何か別の方法を想定されているなら
別途例示下さい

PHP

1<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 2<script> 3$(function(){ 4 $('#f1').on('submit',function(e){ 5 e.preventDefault(); 6 if($(this).find(':checked').length>0){ 7 var a=Array.prototype.sort.call($(this).find(':checked'),function(){ 8 return Math.random()>0.5; 9 })[0]; 10 location.href="?"+a.name+"=1"; 11 } 12 }); 13}); 14</script> 15<form method="get" id="f1"> 16<input type="checkbox" name="01" value="1" >01<br> 17<input type="checkbox" name="02" value="1" >02<br> 18<input type="checkbox" name="03" value="1" >03<br> 19<input type="checkbox" name="04" value="1" >04<br> 20<input type="checkbox" name="05" value="1" >05<br> 21<input type="checkbox" name="06" value="1" >06<br> 22<input type="submit" value="go"> 23</form> 24<?PHP 25print_r($_GET); 26?>

※もともとjavascriptの質問ではないのでjQueryの参照先もfullで書いておきました

投稿2017/11/15 04:19

編集2017/11/15 05:27
yambejp

総合スコア114833

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

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

MeB

2017/11/15 05:06

言葉が足りませんでした。 チェックされた項目は全てつぎのページにそれぞれsortのパラメータとして反映されています。 それとは別で何かの値が1つ欲しいということです。 value="1"はそのままでお願いしたいです。
yambejp

2017/11/15 05:13

それで、PHP側で対応するという選択肢はありますか? そうでなければjavascritpなどで無理やりやるしかありませんが
MeB

2017/11/15 05:35

質問を編集いたしました。
yambejp

2017/11/15 05:40 編集

ちなみに$01では受けられないと思いますが? また$_GET['01']でしかうけとらないなら、送り側で01=xxxの形で送り出してやらないといけません
MeB

2017/11/15 05:51

すみません。php部分編集いたしました。
yambejp

2017/11/15 05:56 編集

それともう一つ name=01,02,03・・・すべてがvalue=1で PHP側が$_GET["01"]しか参照しないのですから、 何をチェックしても$_GET["01"]つまり$aは1にしかナリえないのでは? そうなるとcheckedがついていたら?01=1を発行するだけに見えます 仮に$_GET["02"]や$_GET["03"]を$aが受けたとしても、結局は1でしかないですよね?
MeB

2017/11/15 06:16

そこの部分がわからないため質問しました。 (貼ってくださったjsをいま拝見しました…。)
yambejp

2017/11/15 06:27

そういう意味では > name(01,02,03,04,05,06)とvalue(1)はsortで使用しているため変更不可です。 という仕様に関するソースが提示されていないのでさっぱりわかりません おそらく設計段階から間違えているのでしょう
MeB

2017/11/15 06:45

あ、そう言うことですか…失礼しました。 既存のものを改修と言う形だったためこちらがしっかり中身の把握ができていないのがいけませんでした。 失礼しました。解決はしていませんが多数のコメントをいただいたためyambejp様をベストアンサーにいたします。ゴリ押しですが別の方法でできそうなので試してみます。いろいろありがとうございました。 別の方法があったので
guest

0

他のところで必要なパラメーターが決まっているようですが、

  • どのようなパラメーターが必要か
  • それにはどのような値を渡す必要があるのか

まずはまとめてみましょう。なお、多くの場合、余計なGETパラメーターを付けても単に無視されるだけなので、URLが長くなることを除けばそう害はありません。


(13:59の補足を受けて)

「1つでもチェックが入っていれば何かしらの値を渡すようにすればいい」というのであれば、**全部を同じname**にしてしまえば、PHPで受け取る値は1個になります(チェックがなければその値は送信されません)。

投稿2017/11/15 04:31

編集2017/11/15 05:04
maisumakun

総合スコア145184

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

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

MeB

2017/11/15 05:11

何度もすみません。 nameを変えるとsortができなくなってしまいます。 namaとvalueでsortしている(URLに?01=1&02=1のような形)ためです。 すみません。
maisumakun

2017/11/15 05:14

横線より上にあるような、「ソートに必要なキーと値は何なのか」と「チェックボックスで入力させたいものは何なのか」をきちっと書いてください。
MeB

2017/11/15 05:34

編集しました。
guest

0

一つだけならチェックボックスではなくラジオボタンを使った方が良いのでは。

投稿2017/11/15 04:06

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

MeB

2017/11/15 05:03

言葉が足らずすみません。1つというのはその部分ではありません。 チェックされた項目が全てつぎのページに反映されているのでラジオボタンは不可です。
maisumakun

2017/11/15 05:15

「次のページに反映させる」のはいいのですが、そちらの受け渡し方法はどのようになっていますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問