2013-10-25 24 views
0

我想創建一個註冊表單,檢查用戶是否已經通過電子郵件使用AJAX在系統中。我似乎無法讓我的PHP文件運行,並嘗試了各種論壇的項目。任何人都可以幫我的代碼無法讓我的PHP腳本執行從AJAX

腳本如下。

<script> 
function showUser() { 
    var useremail = $('#useremail').val(); 
    var userpassword = $('#userpassword').val(); 
    var userzip = $('#userzipcode').val(); 
    var url = "/assets/php/userlogin/userdupcheck.php?e="+useremail+"&p="+userpassword+"&z="+userzip; 

xmlhttp.open("GET",url,true); 
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
xmlhttp.send(); 
} 
</script> 

HTML表單是

<div id="registration" title="Register at TownCaddy.com"> 
<form name="register" id="register" onsubmit="showUser()"> 
<table> 
    <tr> 
     <td><input id="useremail" name="useremail" type="text" placeholder="Your Email" size="20" maxlength="45" /></td> 
    </tr> 
    <tr> 
     <td><input id="userpassword" name="userpassword" type="password" placeholder="Password" size="20" maxlength="32" /></td> 
    </tr> 
    <tr> 
     <td><input id="userzipcode" name="userzipcode" type="text" placeholder="Zip" size="5" maxlength="5" /></td> 
    </tr> 
    <tr> 
     <td colspan="4"><input name="submit" type="submit" value="Register" /></td> 
    </tr> 
</table> 
</form> 
</div> 

和PHP文件userdupcheck.php代碼如下

<?php 
$e = $_GET['e']; 
$p = $_GET['p']; 
$z = $_GET['z']; 
$query_dupUserCheck = "SELECT tblUser.userKey FROM tblUser WHERE tblUser.useremail = '".$e."'"; 
$sqlsearch = mysql_query($query_dupUserCheck); 
$resultcount = mysql_num_rows($sqlsearch); 

if ($resultcount > 0) { 
    print '<script type="text/javascript">'; 
    print 'alert("The email address '. $e.' is already registered")'; 
    print '</script>'; 
} else { 
    require_once('register.php'); 
} 

?> 
+0

Firebug向您展示了什麼? –

+0

在GET請求中發送密碼通常不是一個好主意。你應該使用後,所以密碼不公開在URL –

+0

只是一個想法(不確定這一點),但你沒有爲你的表單標籤定義'行動'屬性。由於這是必需的,如果行爲不存在(如未觸發onSubmit事件,因爲沒有行爲沒有意義),行爲可能是未定義的。 http://www.w3.org/TR/html401/interact/forms.html#h-17.3 – Gus

回答

1

你的錯誤是

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

爲什麼?我不知道..我很久之前就把它轉到了jQuery中。嘗試這種方式

xmlHttp.open("GET", "test.php?e=test", false); 
xmlHttp.send(); 

而且,爲什麼不救你自己的時間,這在移動到使用jQuery?無論如何..我真的不知道任何關於x-www-for-urlencoded,因爲我真的只用過它一次..但至少這應該讓你去。我已經測試了這個我的自己幾分鐘前,它正在工作...這是我的調試代碼..

<?php 



$e = empty ($_GET['e'])?null:mysql_real_escape_string ($_GET['e']); 
$p = empty ($_GET['p'])?null:mysql_real_escape_string ($_GET['p']); 
//$z = $_GET['z']; 


$name = "xlordt"; 
$rescount = null; 

if (isSet ($_GET ['e'])) 
{ 

    echo $_GET ['e'];; 
    exit; //exit else, we will get the page instead of results 
} 
//if() 
if ($rescount > 0) { 

    print '<script type="text/javascript">'; 
    print 'alert("The email address '. $q.' is already registered")'; 
    print '</script>'; 

} else { 

    //require_once('register.php'); 
} 


?> 

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Nothing</title> 
    <metha charset="utf-8" /> 
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
    <script> 
     function showUser() { 
      var useremail = $('#useremail').val(); 
      var userpassword = $('#userpassword').val(); 
      var userzip = $('#userzipcode').val(); 
      var url = "test2.php"; 

      if(window.XMLHttpRequest) {  // for Forefox, IE7+, Opera, Safari, ... 
       xmlHttp = new XMLHttpRequest(); 
      } 

      xmlHttp.open("GET", "test.php?e=test", false); 
      xmlHttp.send(); 
      xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
     } 
    </script> 
    </head> 

    <body> 
    <div id="registration" title="Register at TownCaddy.com"> 
    <form name="register" id="register" onsubmit="return showUser();"> 
    <table> 
     <tr> 
      <td><input id="useremail" name="useremail" type="text" placeholder="Your Email" size="20" maxlength="45" /></td> 
     </tr> 
     <tr> 
      <td><input id="userpassword" name="userpassword" type="password" placeholder="Password" size="20" maxlength="32" /></td> 
     </tr> 
     <tr> 
      <td><input id="userzipcode" name="userzipcode" type="text" placeholder="Zip" size="5" maxlength="5" /></td> 
     </tr> 
     <tr> 
      <td colspan="4"><input name="submit" type="submit" value="Register" /></td> 
     </tr> 
    </table> 
    </form> 
    </div>  
    </body></html> 
+0

我仍然無法得到這個工作。我將你有的代碼複製並粘貼到一個新文件中並進行測試。我的本地計算機或服務器上是否缺少某些東西? – user2752153

+0

你如何測試?你使用螢火蟲或類似的檢查結果? – xlordt

+0

我跑過螢火蟲,但沒有看到任何錯誤。我應該尋找什麼? – user2752153