• 締切済み

FORMの値を返す方法です。

こんにちは。質問させてください。 フォームを作成したのですが思うような値を得られませんでした。チェックボックスA~Eの中で、たとえばAとCにチェックをいれて送信すると受信側に返される値は 「selection=A&selection=C&submit=~」となるのですが、これを 「selection=A,C&submit=~」というようにselection=を一つにまとめてカンマで区切って表示できたらと思っています。 どうかご存知の方がいらっしゃいましたら、教えてください。よろしくお願いします。 ------以下のように作成しました---------- <form method="post" action="mailto:@.ne.jp"> <br>選択<br> <input type="checkbox" name="selection" value="A">A<br> <input type="checkbox" name="selection" value="B">B<br> <input type="checkbox" name="selection" value="C">C<br> <input type="checkbox" name="selection" value="D">D<br> <input type="checkbox" name="selection" value="E">E<br> <input type="submit" name="Submit" value="送信"> <input type="reset" name="Submit2" value="リセット"> </form>

  • HTML
  • 回答数2
  • ありがとう数2

みんなの回答

  • onti
  • ベストアンサー率37% (9/24)
回答No.2

selection=A,Cとしたい理由はなんでしょうか? どれが選ばれたかを一括で判断したいからということで いいでしょうか? であれば、チェックボックスのname=のところをselection1、selection2といった形で記述してvalue をセットせずに、FORMを送信すれば、受け取り側では、 チェックされたところの情報が、selection1=on、selection2=onといった感じで送信されてくると思いますが。 そういった形ではまずいのでしょうか?

7chiko
質問者

お礼

ontiさん回答ありがとうございます。 selection=A,Cにしたい理由はですね、本当はCGIを使って CSVファイルから、ほしい情報を検索・表示しようとしてるのですが、どのように説明していいかわからず、この形を使って応用すれば、うまい具合に動くかな?と思ったからなんです。

  • yoshii-s
  • ベストアンサー率38% (26/68)
回答No.1

ちょっとやってみたんですが、JavaScriptを使って編集する所まではできたのですが、 どうしても送信ができませんね。 自分ではここまででお手上げです。 <Script language="JavaScript"> function send_mail(){ value = new Array(5); var senddata; var i; if(document.form1.selection[0].checked==true) value[0]=document.form1.selection[0].value; if(document.form1.selection[1].checked==true) value[1]=document.form1.selection[1].value; if(document.form1.selection[2].checked==true) value[2]=document.form1.selection[2].value; if(document.form1.selection[3].checked==true) value[3]=document.form1.selection[3].value; if(document.form1.selection[4].checked==true) value[4]=document.form1.selection[4].value; senddata=value.join(","); //↓ここのコメントアウトしてある所がうまくいかないんですね・・・。 /* document.senddata.action="mailto:hogeohge@hogehoge.com"; document.senddata.method="post"; document.senddata.encoding="text/plain"; */ alert(senddata); //デバッグ用 } </script> </head> <body> <form name="form1" method="post" onSubmit="send_mail()"> <br>選択<br> <input type="checkbox" name="selection" value="A">A<br> <input type="checkbox" name="selection" value="B">B<br> <input type="checkbox" name="selection" value="C">C<br> <input type="checkbox" name="selection" value="D">D<br> <input type="checkbox" name="selection" value="E">E<br> <input type="submit" name="Submit" value="送信"> <input type="reset" name="Submit2" value="リセット"> </form>

7chiko
質問者

お礼

yoshii-sさん、回答ありがとうございます。ontiさんより早く回答いただいたのに後になってしまってすいません。 Java scriptで <senddata=value.join(","); まではいきついたのですがそこからつまって しまいまして。参考にちょっとやってみます。 ありがとうございます。

関連するQ&A

  • formから送信する値について

    nameを同じくする複数のチェックボックスのチェック項目について valueを「+」や「,」でつなげて送信したいです 例えば <input type="checkbox" name="color" value="red" checked > <input type="checkbox" name="color" value="blue" checked> <input type="checkbox" name="color" value="green" checked > <input type="checkbox" name="option" value="A" checked > <input type="checkbox" name="option" value="B" checked > <input type="checkbox" name="option" value="C" checked > ならば、submitされるURL変数は ?color=red,blue,green&option=A+B+C になるようにしたいのです よろしくお願いします

    • ベストアンサー
    • HTML
  • 一つのformで、複数のaction指定

    レイアウトなどの関係で、formの配置が基本とは異なるものになってしまい、うまく動作させる方法が見つからず困っています。 現在は <form> <input type="checkbox" name="select[]" value="●●"> <input type="checkbox" name="select[]" value="●●"> <input type="checkbox" name="select[]" value="●●"> </form> …… <form method="POST" action="A.php"> <input type="submit" name="aa" value="あああ"> </form> <form method="POST" action="B.php"> <input type="submit" name="bb" value="いいい"> </form> <form method="POST" action="C.php"> <input type="submit" name="cc" value="ううう"> </form> <form method="POST" action="D.php"> <input type="submit" name="dd" value="えええ"> </form> のようになっていて、チェックボックスの値を送信したいのは、Dのボタンを押したときだけPOSTされるようにしたい状態です。 この値を取得する方法か、もしくは <form method="POST" action="(ボタンに応じたもの)"> <input type="checkbox" name="select[]" value="●●"> <input type="checkbox" name="select[]" value="●●"> <input type="checkbox" name="select[]" value="●●"> …… <input type="submit" name="aa" value="あああ"> <input type="submit" name="bb" value="いいい"> <input type="submit" name="cc" value="ううう"> <input type="submit" name="dd" value="えええ"> </form> このように、一つのフォームの中に埋めてしまい、actionに入る値をボタンによって分ける方法はありませんでしょうか? もしくは他の方法でも構いません。 お分かりの方がいましたら、是非ご教授お願いいたします。

    • 締切済み
    • PHP
  • チェックボックスから配列を使って値を受け取る方法

    チェックボックスから配列を使って値を受け取る方法について、 以下の通りに試してみたのですが、上手く行かず、 配列$fCに値が入りません。 どなたか原因を教えていただけないでしょうか。 ------------------------------------------------ hoge.html <form action="hoge.php"> <input type="checkbox" name="fC[]" value="hoge"> hoge <br> <input type="checkbox" name="fC[]" value="foo"> foo <br> <input type="checkbox" name="fC[]" value="bar"> bar <br> <input type="submit" value="OK"> </form> ---------------------------------------------------------- ------------------------------------------------- hoge.php <? for( $i=0; $i<count($fC); $i++ ) { print $i ." ::: " . $fC[$i] . "<br>\n"; } ?> ----------------------------------------------------------

    • ベストアンサー
    • PHP
  • チェックボックスの値を(1,0)のようにすべて送信する方法

    formをsubmitすると、チェックボックスの値は、 チェックされた項目のvalue値が配列の形で送信されますよね。 たとえば、 <INPUT TYPE="CHECKBOX" NAME="C_BOX" VALUE="111" CHECKED> <INPUT TYPE="CHECKBOX" NAME="C_BOX" VALUE="222" CHECKED> <INPUT TYPE="CHECKBOX" NAME="C_BOX" VALUE="333" CHECKED> <INPUT TYPE="CHECKBOX" NAME="C_BOX" VALUE="444"> <INPUT TYPE="CHECKBOX" NAME="C_BOX" VALUE="555" CHECKED> だと、 [111,222,333,555] のように。 今回は、表形式でデータを表示し、 チェックされた行の、他の列の値(フィールド)も取得したいのです。 他の列のフィールドは、チェックされていない行でも入力されている可能性があります。 そうすると、そのフィールドの値も配列にして送ってしまうと、 チェックボックスの値と数が合わなくなり、横方向での関連付けが出来なくなってしまいます。 なので、チェックボックスの送信値を、配列の要素数は全件で、 チェックされたかされていないかということが分かるように することは不可能でしょうか? JavaScriptは規約により、使うことが出来ない状況で困っています(><) 何か案があれば教えてください。

    • ベストアンサー
    • HTML
  • 複数のチェックボックスの値を、ひとつの変数に入れて表示したい。

    Perlで質問です。 下記のようなフォームで、A~Fまでのチェックボックスを選んで「test.cgi」にデータを送ります。 <HTML> <BODY> <FORM action="test.cgi"> <input name="q6_1" type="checkbox" value="A">A<br> <input name="q6_2" type="checkbox" value="B">B<br> <input name="q6_3" type="checkbox" value="C">C<br> <input name="q6_4" type="checkbox" value="D">D<br> <input name="q6_5" type="checkbox" value="E">E<br> <input name="q6_6" type="checkbox" value="F">F<br> <input name="q6_7" type="checkbox" value="G">G<br> <INPUT type="submit"> </FORM> </BODY> </HTML> 次の画面で、選ばれた物の確認画面を変数「$work6」を呼び出して表示したいと思っています。 <HTML> <BODY> A / B / C / D / E / F </BODY> </HTML> この処理をperlを使ってやりたいのですが、どうやったらいいのかわかりません。 for を使って「q6_1~7」を呼び出し、それぞれの最後に「 / 」を追加したあとファイルハンドルを使って、変数「$work6」に追加上書きして表示、と言うことをすれば良いのだろうと、下記のソースを書いて見ましたが、うまくいきませんでした。 (たぶん間違いだらけだと思いますが…。) open(IN, ">>$work6"); for ($q6 = 1; $q6 < 7; $q6++){ if ($FORM{'q6_$q6'} ne '') { print IN "$FORM{'q6_$q6'}." / ""; } } close(IN); つたない質問だと思いますが、 よろしくお願いします。

    • ベストアンサー
    • Perl
  • POSTされた値でイベント実行

    フォームからpostされたときに、特定の値が入っているときのみJavaScriptにてイベントを発生させたいのですが、どのようにすればいいのかわかりません。 <form action="#" method="post" name="test"> <input type="checkbox" name="a" value="1"> <input type="submit" name="submit" value="送信"> </form> このようなソースの場合でsubmit後、aに値が入っている場合のみイベントを発生させたいと考えています。そのようなことは出来ますしょうか? よろしくお願いします。

  • 複数フィールドの値を一つのVALUEで送信するには?

    以下のようなFORMがあったとします。 <form> <!-- 項目A --> ■項目A<br> <input type="radio" name="checkA" value="佐藤" checked="checked" />佐藤 <input type="radio" name="checkA" value="鈴木" />鈴木 <br><br> <!-- 項目B --> ■項目B<br> <input type="radio" name="checkB" value="太郎" checked="checked" />太郎 <input type="radio" name="checkB" value="次郎" />次郎 <br><br> <!-- 項目C --> <input type="hidden" name="checkC" value="checkAの値+checkBの値"> <input type="submit" value="送信" /> </form> 画面上は『A』の項目と『B』の項目が選択できますが、name=checkA、checkBとして別々に値を送信するのではなく、checkCとしてcheckA、checkBの値を一緒にして送信したいのですが、可能でしょうか? 送信の際、checkA、checkBの値は送信されず、また、送信されるcheckCの値は画面上では表示されない、というのが理想です。 作業していて途方にくれてしまいました。詳しい方、どうぞ教えてください。よろしくお願いします。

    • ベストアンサー
    • CGI
  • フォームから受け取る値について

    フォームから送られてくる値に たまに予期しない内容が入ってくるのですが どういった原因が考えられますでしょうか? 具体的なフォームの内容は下記の通りで a,b,c以外の値が送られてくることがあります。 <FORM action="test.php" method=post> <INPUT type=checkbox name=chk[1] value=a> <INPUT type=checkbox name=chk[2] value=b> <INPUT type=checkbox name=chk[3] value=c> <INPUT type=submit value=OK> </FORM> ローカルにフォーム画面のHTMLをダウンロードし form actionとvalueを変更して実行すれば 送れると思いますが・・他に何かありますでしょうか? よろしくお願い致します。 環境:RedHat7.3+Apache1.3+PHP4.2.2

    • 締切済み
    • PHP
  • chromeでフォームの値が取得できない

    PHPでフォームに入力された値を取得して画面に表示させる処理において、 Javascriptでフォームの値を変更した場合、chromeだと変更後の値が 取得できません。 例えば、 <form name="form" method="post" action="index.php"> <input type="checkbox" name="chk1" value="111"> <input type="hidden" name="data1" value="AAA"> <input type="submit" value="送信"> </form> というようなフォームがあったとして、Javascriptで値を <form name="form" method="post" action="index.php"> <input type="checkbox" name="chk1" value="222"> <input type="hidden" name="data1" value="BBB"> <input type="submit" value="送信"> </form> と、変更しても送信ボタンを押して取得できる値は、上の方の値になります。 IEやFireFoxでは問題なく変更後の値が取得できるのですが、chromeだと 取得できません。 なにか解決方法があるのか、それともchromeの仕様なのかご教示いただければと 思います。 どうかよろしくお願いいたします。

  • チェックボックスのperlでの値の渡し方と、postgreSQLでのデータ書込みについて教えて下さい。

    今、下記のような複数選択可のチェックボックスを 作成していまして、perlでの値の渡し方と、 postgreSQLでのデータ書込みについて悩んでいます。 良かったら教えて下さい。 <INPUT type="checkbox" name="test" value="A">A<BR> <INPUT type="checkbox" name="test" value="B">B<BR> <INPUT type="checkbox" name="test" value="C">C<BR> というチェックボックスのうち、AとCにチェックをつけたと します。その際、perlでデータを引き継いだ場合、 testには、AとCが入っているのでしょうか? また、サーバに書き込む際に、データはどのように保存される のでしょうか? 1つの名前では無理なのでしょうか?またその場合、postgreSQL のデータ項目名も3つ名前を用意しておかないといけないので しょうか?編集画面を作成する際に、そのサーバの 項目から値をひっぱりだして、checkedを表示させたいのですが、 <INPUT type="checkbox" name="test" value="A" checked>A<BR> <INPUT type="checkbox" name="test" value="B">B<BR> <INPUT type="checkbox" name="test" value="C" checked>C<BR> と出るようにしたいのですが、何か良い方法がありましたら、 教えて下さい。お願いします。

    • ベストアンサー
    • Perl

専門家に質問してみよう