私のWebページには、次のフォームとjavascript機能があります。これは私がやりたいことが可能かどうかをテストするために使用しているダミー関数です。送信ボタンを使用してAJAX機能を有効にするにはどうすればよいですか?
私がしようとしているのは、AJAXリクエストをサーバーに送信して、ページ自体が所定のパスに沿ってデータベースを更新できるようにすることです。私はタイトな時間を過ごしているので、残念ながらこれをより良くサポートするためにページ全体を書き換える時間がありません。私が持っている問題は、xmlhttp
オブジェクトが正しく返されないようです。 readyState
は4ですが、status
は0です。誰かが何をする必要があるのか説明してください。ここで
は私のコードです:
<html>
<head>
<script type="text/javascript">
function test(){
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange=function(){
document.getElementById("new").innerHTML+="<b>"+xmlhttp.readyState+"</b> "+xmlhttp.status;
if (xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById("hello").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","response.php",true);
xmlhttp.send();
}
</script>
</head>
<body>
<?php
if ($_POST){
echo $_POST['hello'];
}
?>
<form action="ajax.php" method="post">
<input type="text" name="hello" />
<input type="submit" value="submit" onclick="test();" />
</form>
<div id="hello"></div>
<h3>debug</h3>
<div id="new"></div>
</body>
</html>
response.php
<?php
echo "Hello there";
?>
EDIT
ajax.php私が前にしたくないんことに注意してくださいデフォルトの動作です。実際には、はを通常どおり提出する必要があります。 AJAXリクエストをプロセスに追加するだけです。
http://stackoverflow.com/questions/5081674/jquery-prevent-default-browser-form-submit-behaviour-but-submit-form-with-jquer – check123
http://stackoverflow.com/questions/1357118/javascript-event-preventdefault-vs-return-false – check123
@ check123デフォルトの動作をしないようにしないでください。フォームは通常通りに提出する必要がありますが、AJAXリクエストも同様に実行したいと思います。 – ewok