• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:formの中で別のactionをもったsubmitボタンの設置。)

formの中で別のactionをもったsubmitボタンの設置

このQ&Aのポイント
  • formの中に別のactionをもったsubmitボタンを設置しました。チェックボックスでのチェック結果を渡すために、JavaScript内の構文でcheck[]と記述しているためエラーが発生しています。
  • チェックボックスで何と何がチェックされたかを渡したい場合、単純にcheckと記述すると1つの値しか渡せません。
  • 解決策としては、JavaScriptの関数内でチェックボックスの値を取得し、配列やJSON形式で複数の値を渡すことができます。

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

なんだかいろいろ… >javascript内の構文でcheck[]と記述してるからだと思いますが~~ 配列と想定されて、構文エラーになっているみたいですね。 (そもそもname属性に「[」、「]」の使用ってOKでしたっけ?) inputにtype="check"ってないはずだけど、checkboxのつもりなのか、textのつもりなのか…? いずれにしろ、同じ名前にだと受信時に区別がつかないけれどいいのかなぁ? 仮に問題なくても、ご提示のスクリプトで区別できないから、名前指定の方法では無理。 名前を使わずに、formのchildNodesを舐めてコピーするとか、面倒ならinnerHTMLとか、あるいはform要素のcloneとか… やりたいことがよくわかってませんが、同じデータで違う送信先に送りたいということなのでしょうか? もしそうならば、どうせjavascriptを利用するのなら、コピーなどしなくてもformの送信先(action)を変えるだけでよいのでは? 例えば onclick = "this.form.action='xxx.php'" みたいに…

hukazuo
質問者

お礼

ありがとうございました。 結局javascriptではできなかったので、別の方法で行いました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

たぶんFAQです。 document.form1.elements['check[]'].value =form.elements['check[]'].value; nameに[]の記号を入れるときは、通常はcheck[]が複数有るはず(PHPの処理の関係で)ですので、 elements['check[]'][0]というように、何番目かを指定しないと行けないはずです。 HTMLの文法ではnameに記号が使えませんから、 1つしかないなら、name="check[]"という書き方ではなく、name="check"としておく方が良いと思います。 (FirefoxはHTMLの文法に厳格ですから、今後、送信できなくなる可能性もあります。 PHPがどうなるかはわかりませんが、おそらくPHPの言語仕様変更が必要になると思います。)

hukazuo
質問者

お礼

ありがとうございました。 別の方法で乗り切りました。

すると、全ての回答が全文表示されます。

関連するQ&A