すみません、緊急だったので質問させて下さい。
formのPOSTでデータを送信しようと考えています。
<form action="hoge.php" method="post" id="form" name="form" enctype="multipart/form-data"> //フォーム内容 <button name="upd" class="subsub" value="1">更新</button> <button name="del" class="subsub" value="1">削除</button> <button name="preview" class="previews" value="1">プレビュー</button> </form>
上記のように更新ボタンとプレビューボタンを設置し、更新ボタンを押した場合はPOST送信、プレビューボタンを押した際は別ウインドでプレビューを表示します。
同じフォーム内なので、プレビューボタンが押された際はactionの値をJqueryで書き換えています。
$(".previews").on("click", function() { window.open("","newwin"); $("form").attr("action", "preview.php"); $("form").attr("target", "newwin"); $("form").submit(); }); $(".subsub").on("click", function() { $("form").attr("action", "hoge.php"); $("form").attr("target", "_self"); $("form").submit(); });
ただ、Windows7のIEやChromeなどでは問題なく動くのですが、Windows10のMicrosoft Edgeだけでは更新ができません。
原因としては、他のブラウザではPHPでボタンの値をPOSTで受け取っているのですが、Microsoft EdgeだけはPOSTの中に$_POST["upd"]が含まれません。
Jqueryでのsubmit(上記のJqueryコード)を消すと問題ないく取得できます。
Jqueryのsubmitでは押したbuttonの値は送信されないのでしょうか。
よろしくお願いします。
■追記
すみません、更新ボタンとプレビューボタンだけであればinputのhiddenを付ければいいのですが、これに加え削除ボタンがあり、プレビューが押された場合は飛先が変わるので、更新ボタンと削除ボタンを押した際は飛先を戻してやらないといけないので、このような書き方になっております。
その場合、inputのhiddenではどちらを押したかわからないので、使えないと判断しております。
また、この後にPHPのPOSTで値を取得しMySQLでデータベースに保存するためPOST送信を使っております。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。