• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javascriptのsubmitを使ってデータをpost送信したい。)

javascriptのsubmitを使ってデータをpost送信する方法

このQ&Aのポイント
  • aaa.phpというファイルに複数のチェックボックスがあり、リンクをクリックしたときにチェックされた値のみをbbb.phpへ引き渡したいです。
  • チェックボックスの数は固定ではなく変動があり、値も実際はランダムです。
  • デザインの都合上どうしてもaタグでしか記述が出来ません。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

onClick="send()"と定義されていますが、関数はmailformしか定義されていません。 (きっとどちらかが正しいのでしょう) 1.checkboxのnameを全て配列化する。 name="no" → name="no[]" 2.checkboxのエレメント取得処理を変更する。 var chk = document.getElementsByName('no[]'); または、 var chk = document.form1.elements; 3.onClick="send()"をonClick="mailform()"とする。 (これは、どちらが正しいかによりますね。)

laundry77
質問者

お礼

ご回答いただきありがとうございます。 お礼が遅れ申し訳ありません。 mailform()をsend()とよくみたらすぐに分かる部分を間違えており、恥ずかしい限りです。 mailform()が正しいのでonClick="mailform()"と修正し、 >1.checkboxのnameを全て配列化する。 >2.checkboxのエレメント取得処理を変更する。 の部分も直しました。 それと別に、チェックが1つだけの時にうまくいかなかったので その処理を追記したところ、うまく動くようになりました。 とても丁寧にアドバイスいただきありがとうございました。

その他の回答 (2)

  • think49
  • ベストアンサー率59% (285/482)
回答No.3

これでどうでしょうか? 全てのcheckboxにチェックが入っていたら、submit() する - jsdo.it http://jsdo.it/think49/kZcL > デザインの都合上どうしてもaタグでしか記述が出来ません。 デザインはCSSで管理してください。 input要素をa要素のデザインに出来ます。

laundry77
質問者

お礼

ご回答ありがとうございます。 御礼が遅くなり申し訳ございませんでした。 教えていただいたURLをみてみました。 私がやりたいことは、チェックが入ったチェックボックスの値だけをPOSTしたかったので 少し違いましたが、リンク先のソースを参考にさせていただき、無事解決できました。 aタグでの記述もできました。 ご回答、本当にありがとうございました。

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

下記のような事がしたいのですか? <script type="text/javascript"> function send() {  var i = 0;  var chkvalue = "";  var count = 0;  var chk = document.querySelectorAll('form[name="form1"] input[type="checkbox"]');  for(i=0; i<chk.length; i++) {   if (chk[i].checked == true) {    chkvalue += chk[i].value;    count++;   }  }  if(count == 0) {   alert("チェックされていません。");   return false;  } else {   document.form1.action = "./bbb.php";   document.form1.method="post";   document.form1.submit();  } } </script> </head> <body> <a href="#" onClick="send()">bbb.phpへ遷移する</a> <form name="form1"> <input type="checkbox" name="no[1]" value="1"><br /> <input type="checkbox" name="no[2]" value="2"><br /> <input type="checkbox" name="no[3]" value="3"><br /> <input type="checkbox" name="no[4]" value="4"><br /> </form> </body>

laundry77
質問者

お礼

早速ご回答頂き、ありがとうございます。 「document.querySelectorAll」がどのようなものなのか調べましたがわからず とりあえずそのままコピーして使わせていただきましたが 「オブジェクトでサポートされていないプロパティまたはメソッドです」とエラーがでてbbb.phpへ遷移しなくなってしまいました。

関連するQ&A