phpの質問です。
一つのsubmitボタンに対するactionの飛び先を複数指定することは可能でしょうか?
ようするに1つのボタンで複数のurlにデータを送りたいです。
方法があれば教えてください。(もし代替案があればそちらもご教授頂けると幸いです。)
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/13 20:17 編集
回答5件
0
iframeとjsを使えばできないことはないでしょう
javascript
1<script> 2window.addEventListener('DOMContentLoaded', ()=>{ 3 document.querySelector('form').addEventListener('submit',(e)=>{ 4 e.preventDefault(); 5 const t=e.target; 6 ["a","b","c","d"].forEach((x,y)=>{ 7 setTimeout(()=>{ 8 t.target=x; 9 t.action=document.querySelector(`[name=${x}]`).src; 10 t.submit(); 11 },y); 12 }); 13 }); 14}); 15</script> 16<form method="post"> 17<input type="text" name="hoge" value="123"> 18<input type="submit" value="send"> 19</form> 20<iframe name="a" src="targetA.php"></iframe> 21<iframe name="b" src="targetB.php"></iframe> 22<iframe name="c" src="targetC.php"></iframe> 23<iframe name="d" src="targetD.php"></iframe>
//targetA~D.php
php
1<?PHP 2print_r($_POST);
投稿2021/06/14 02:51
編集2021/06/14 02:52総合スコア116724
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ただデータを送るだけでよければ、JavaScriptでリクエストすればいけないですかね?
https://developer.mozilla.org/ja/docs/Learn/Forms/Sending_forms_through_JavaScript
投稿2021/06/13 21:56
総合スコア508
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
面白いテーマだと思ったので挑戦させていただきました^^
一度、formの要素をJavaScriptでまるっとコピーしたらワンチャンできるかも知れません。
※動作は全く保証してません。
Chromeで試したのですが、初回、ポップアップブロックのアラートが出てそれを許可しないとうまく行かなかったです。
html
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <style> 8 #copy { display: none; } 9 </style> 10</head> 11<body> 12 <form name="form1"> 13 <input type="text" name="input" value=""> 14 <button type="button" onclick="multiSubmit()">送信</button> 15 </form> 16 <div id="copy"></div> 17 <script> 18 function multiSubmit() { 19 var form1 = document.querySelector("[name=form1]"); 20 // formをコピーする 21 var form2 = form1.cloneNode(true); 22 // コピーしたformのnameを変更 23 form2.name = "form2"; 24 25 // copyようのdivにformを挿入 26 var copy = document.querySelector("#copy"); 27 copy.appendChild(form2) 28 29 // form1の設定 30 document.form1.action = "hoge.html"; 31 document.form1.method = "post"; 32 document.form1.target = "_blank"; 33 34 // form2の設定 35 document.form2.action = "fuga.html"; 36 document.form1.method = "post"; 37 document.form2.target = "_blank"; 38 39 // submit実行 40 document.form1.submit(); 41 document.form2.submit(); 42 43 // copyした要素削除 44 copy.innerHTML = "" 45 } 46 </script> 47</body> 48</html>
投稿2021/06/13 21:29
総合スコア508
0
AサーバーからBサーバーへ
BサーバーからCサーバーへ
と、順次送り込んでいくならなんとか。
実際の処理内容が分かれば違う案もでるとおもいますが。
投稿2021/06/13 20:36
総合スコア7464
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。