POST と GET リクエストの両方を送信するフォームを作成する必要があります (IE と iframe のバグのため)。
送信されるデータはそれほど安全なものではないため、GET 経由で設定できるかどうかは問題ではありません。両方の方法で設定されていることを確認する必要があります。
助けてくれてありがとう!
簡単:フォームURLにGETデータを指定するだけ。
<form method="POST" action="form.php?a=1&b=2&c=3">
ただし、受信スクリプトでデータがどのように使用されているかを注意深く確認してください。使用しないでください$_REQUEST
-むしろ解析$_GET
し$_POST
、正確なニーズに応じて、必要な優先順位に従ってください。
フォームで通常の POST を実行し、JavaScript を使用してクエリ文字列の値も複製します。
HTML:
<form id="myform" method="post" action="..." onsubmit="process()">
...
</form>
JavaScript:
function process() {
var form = document.getElementById('myform');
var elements = form.elements;
var values = [];
for (var i = 0; i < elements.length; i++)
values.push(encodeURIComponent(elements[i].name) + '=' + encodeURIComponent(elements[i].value));
form.action += '?' + values.join('&');
}
回避しようとしているバグはわかりませんが、jQueryを使用して、投稿された値を含むようにフォームのアクションを簡単に変更できます。
脚本:
function setAction() {
$("#myform").attr("action", "/path/to/script/?" + $("#myform").serialize());
}
html:
<form id="myform" action="/path/to/script/" method="post" onsubmit="setAction()">
フォームは post を設定し、URL で get を行う必要があります
<form method="post" action="http://www.yourpage.php?firstparam=1&sec=2">
.
.
</form>