2013-07-28 19 views
0

形式總是被提交。我只想提交數據==「可用」,即... PHP文件返回可用。基於從php文件收到的數據如何返回真或假的ajax表單提交?

function PostData() { 
     var xhr; 
     if (window.XMLHttpRequest) { 
      xhr = new XMLHttpRequest(); 
     } 
     else if (window.ActiveXObject) { 
      xhr = new ActiveXObject("Msxml2.XMLHTTP"); 
     } 
     else { 
      throw new Error("Ajax is not supported by this browser"); 
     } 
     var username = document.getElementById("username_input").value; 
     xhr.open('POST', 'header/onsubmit_check.php'); 
     xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
     xhr.send("username=" + username); 


     xhr.onreadystatechange = function() { 
       var data=xhr.responseText.trim(); 
       document.getElementById('onsubmit_feedback').innerHTML = data; 
     } 

     if (data=='Available') { 
     return true; 
     } else { 
     return false; 
     } 
    } 
+0

我們能看到你的PHP代碼?您是否嘗試過使用console.log(data)來檢查瀏覽器控制檯中的實際響應? –

+0

我是新手。我不知道console.log(數據)是什麼。 @koala_dev – user2625007

+0

前加入該行,如果你(數據==「可用」),然後打開你的瀏覽器控制檯(按Ctrl + Shift + J),當您運行AJAX調用響應將出現在那裏 –

回答

1

在HTML確保您使用形式

<form id="my_form" onsubmit="return PostData()"> 

請在你的JavaScript代碼的一些變化

function PostData() { 
     var xhr,data; 
     if (window.XMLHttpRequest) { 
      xhr = new XMLHttpRequest(); 
     } 
     else if (window.ActiveXObject) { 
      xhr = new ActiveXObject("Msxml2.XMLHTTP"); 
     } 
     else { 
      throw new Error("Ajax is not supported by this browser"); 
     } 
     var username = document.getElementById("username_input").value; 
     xhr.open('POST', 'header/onsubmit_check.php'); 
     xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
     xhr.send("username=" + username); 


     xhr.onreadystatechange = function() { 
       data=xhr.responseText.trim(); 
       document.getElementById('onsubmit_feedback').innerHTML = data; 
       if (data==='Available'){ 
        document.getElementById("my_form").submit(); 
       } 
     } 

     return false; 

    } 

函數總是返回false並提交表單時,需要AJAX回報值。

相關問題