2
ajaxを使用してコードを作成しているうちに、問題が見つかりました。以下は私のコードの切り札です。ajaxリクエストが完了するまでフォームのリクエストを停止
<script type="text/javascript">
function xmlHttp(){
if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}
else{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
return xmlhttp;
}
function addData(a, b, c){
xmlhttp = xmlHttp();
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState==4 && xmlhttp.status==200){
alert("Response : " + xmlhttp.responseText);
}
}
link = "test.php?a="+a+"&b="+b+"&c="+c;
xmlhttp.open("GET",link,true);
xmlhttp.send();
}
</script>
<center>
<form method="POST" action="?page=search.php">
<table width="400" border="1">
<tr>
<td align="right"><button onclick="return addData(1,2,3);">Add data</button></td>
</tr>
</table>
</form>
</center>
オンボタンをクリックすると、ajaxリクエストが呼び出されます。 ajaxリクエストが完了する前に、送信が行われます。 ajaxリクエストが完了するまでフォームの送信を待つために何をすべきか。
このリンクは鉱山と似ています。 Sending an Ajax request before form submit
これを行うと、他のフォームは送信されません(他の入力タイプ)。 POST配列は空のままです。
どうすればいいですか? – bunkdeath
私の今の編集を見てください。 – Kangkan
私はあなたが言うことを得ています。しかし、私の問題は違うものです。ボタンがフォームタグ内にあるので、ボタン自体をクリックするとフォームが送信されます。だから、ボタンをクリックしている間、私はajaxコールとフォーム提出が一緒に働いて、ajaxコール成功フォームが提出される前に推測します。 – bunkdeath