我的網頁上有以下表單和javascript功能。這是一個虛擬函數,我正在使用它來測試我想要做什麼是可能的。如何使用提交按鈕來激活AJAX功能?
我正在試圖做的是有一個窗體發送一個AJAX請求到服務器,以便服務器可以更新數據庫,而頁面本身繼續沿着它的預定路徑。我處於緊張時刻,所以我很遺憾沒有時間重寫整個頁面以更好地支持這一點。我的問題是xmlhttp
對象似乎沒有正常返回。我得到一個readyState
的4,但status
爲0.有人可以請解釋我需要做什麼?
這裏是我的代碼:
ajax.php
<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";
?>
編輯
請注意,我不想上一頁默認行爲。實際上,像往常一樣提交forn 必須。我只是想爲流程添加一個AJAX請求。
http://stackoverflow.com/questions/5081674/jquery-prevent-default-browser-form-submit-behaviour-but-submit-form-with-jquer – check123 2012-01-13 14:16:39
http://stackoverflow.com/questions/1357118/javascript-event-preventdefault-vs-return-false – check123 2012-01-13 14:17:39
@ check123請不要說我不想阻止默認行爲。表單需要像平常一樣提交,但我也希望AJAX請求也能發生。 – ewok 2012-01-13 14:18:44