2013-05-27 54 views
0

我有這樣一段代碼:有時只是一些數據丟失,調用javascript函數而不是調用PHP函數,從同一個JavaScript

function doSomething(customer) 
{ 

var xmlhttp = new getXMLObject(); 

var customer1 = customer; 

xmlhttp.onreadystatechange=function() { 
if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("txtSomething").innerHTML=xmlhttp.responseText; 
    } 
} 

var params = "customer=" + customer; 

xmlhttp.open("POST","/something.php", true); 

xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 

xmlhttp.setRequestHeader("Content-length", params.length); 

xmlhttp.setRequestHeader("Connection", "close"); 

xmlhttp.send(params); 

post.call(this, customer1); 

} 

在某些處決,第二個函數調用輸值變量customer1,但它很好地到達something.php。 有什麼問題嗎?

謝謝。

回答

1

AJAX是異步的。你開除了AJAX電話,但是。 send()返回立即,無需等待回覆。所以你的代碼繼續,並且不會等待任何來自服務器的呼叫,而是調用post.call()

0

您是否嘗試過jQuery Ajax,您可以在其中設置一些回調來檢查響應?

而且,它比你的代碼更可能是跨瀏覽器! :)

你可以用這個做一些很酷的事情。檢查一個例子:

$.ajax({ 
    type: "POST", 
    url: "some.php", 
    data: { name: "John", location: "Boston" } 
}).done(function(msg) { 
    alert("Data Saved: " + msg); 
}); 

Check here.