🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

HTML

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

Q&A

解決済

1回答

730閲覧

別formからvalueを受け取り自formでsubmitする方法

span

総合スコア32

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

HTML

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

0グッド

0クリップ

投稿2019/10/31 02:57

編集2019/10/31 04:21

html

1<form id="form1"> 2 <input type="checkbox" name="hoge[]" value="data1-1"> 3 <input type="checkbox" name="hoge[]" value="data1-2"> 4 <input type="checkbox" name="hoge[]" value="data1-3"> 5 <div id="getData">GET</div> 6</form> 7 8<form id="form2" action="hogehoge" method="post"> 9 <input type="text" name="huga1" value="data2-1"> 10 <input type="text" name="huga2" value="data2-2"> 11 <input type="text" name="huga3" value="data2-3"> 12 <input type="submit" value="送信"> 13</form>

上記のイメージでform1のチェックボックス選択で取得した結果valueをform2に渡してsubmitしたいと考えています。
このような実装は可能でしょうか?色々と調べたのですが解決に至らず質問させていただきます。
解決に至るscript等ありましたら
申し訳ありませんがご教授願います。

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

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

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

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

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

m.ts10806

2019/10/31 02:59

「可能です」だけよければそのように回答します。よくないのでした ら自身が調べたこと試したこと含めて質問の仕方を整理してください。
span

2019/10/31 03:56

色々と調べたのですが直結するような解決方法に至らず… 質問の仕方等以後気をつけます申し訳ありません。。
m.ts10806

2019/10/31 04:00 編集

「調べた」ということだけではどのような可能性や方向性を探ったのか他者には伝わりませんのでそこも具体的に記載してください。 今現在の内容だと「何も調べてないし試してないけどコードだけください」と言っているのと同義です。
guest

回答1

0

ベストアンサー

フレームなどがからまない同じページ内であれば不可能ではないと思いますが
むしろ別のフォームで送信する意味はないと思います
送信しないフォームはなんのためにあるのでしょうか?

sample

javascript

1<script> 2window.addEventListener('DOMContentLoaded', ()=>{ 3 const f1=[].map.call(document.querySelectorAll('#form1 [type=checkbox]'),x=>x); 4 const f2=[].map.call(document.querySelectorAll('#form2 [type=checkbox]'),x=>x); 5 f1.forEach(x=>x.addEventListener('change',()=>{ 6 const idx=f1.indexOf(x); 7 f2[idx].checked=x.checked; 8 })); 9}); 10</script> 11<form id="form1"> 12 <input type="checkbox" name="hoge1" value="data1-1"> 13 <input type="checkbox" name="hoge1" value="data1-2"> 14 <input type="checkbox" name="hoge1" value="data1-3"> 15 <div id="getData">GET</div> 16</form> 17 18<form id="form2" action="hogehoge" method="post"> 19 <input type="checkbox" name="hoge2" value="data2-1" readonly> 20 <input type="checkbox" name="hoge2" value="data2-2" readonly> 21 <input type="checkbox" name="hoge2" value="data2-3" readonly> 22 <input type="submit" value="送信"> 23</form>

修正版

javascript

1<script> 2window.addEventListener('DOMContentLoaded', ()=>{ 3 const f1=[].map.call(document.querySelectorAll('#form1 [type=checkbox]'),x=>x); 4 const f2=[].map.call(document.querySelectorAll('#form2 [type=text]'),x=>x); 5 f1.forEach(x=>x.addEventListener('change',()=>{ 6 const idx=f1.indexOf(x); 7 f2[idx].disabled=!x.checked; 8 })); 9 f2.forEach(x=>x.disabled=true); 10}); 11</script> 12<form id="form1"> 13 <input type="checkbox" name="hoge[]" value="data1-1"> 14 <input type="checkbox" name="hoge[]" value="data1-2"> 15 <input type="checkbox" name="hoge[]" value="data1-3"> 16 <div id="getData">GET</div> 17</form> 18 19<form id="form2"> 20 <input type="text" name="hoge2[]" value="data2-1"> 21 <input type="text" name="hoge2[]" value="data2-2"> 22 <input type="text" name="hoge2[]" value="data2-3"> 23 <input type="submit" value="送信"> 24</form>

投稿2019/10/31 03:10

編集2019/10/31 04:24
yambejp

総合スコア116661

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

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

kyoya0819

2019/10/31 03:35

質問者さんはGoogleformを使いたいとか? 余計な詮索は良くないか....
span

2019/10/31 03:55

ご回答ありがとうございます単純に作るページのデザイン・レイアウトの兼ね合いなのですがソース上の離れた場所にそれぞれマークアップする必要があります。おっしゃる通り一つのformで囲ってしまえば早いのですが… それですとコードが雑になる懸念がありまして今回の質問をさせていただきました。
yambejp

2019/10/31 04:00

サイトデザインの問題ならなぜnameを書き換えているのでしょうか? またcheckboxで同名をつかっていると競合する可能性が高いですが サーバー側の言語は何を想定していますか?
yambejp

2019/10/31 04:09

とりあえず状況が確認できないですが、f1のチェックボックスを f2のチェックボックスに反映させる方法だけsample上げておきました
span

2019/10/31 04:19

ご回答ありがとうございます。 form1のvalueは配列で受け取る想定でした、またform2のinputのタイプはtextでありそのform2の結果に乗せてform1のチェックボックスで得た配列を乗せてsubmitさせるイメージでした。申し訳ないです。。 サーバーはphpです。 いただいたコード参考にしてもう少し調べてみます。ありがとうございます。
yambejp

2019/10/31 04:25

修正版あげておきました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問