2012-03-31 167 views
0

我有這個似乎沒有工作的阿賈克斯代碼。該代碼不會承認一個成功的結果,它只是繼續給出else語句。我跑了dologin.php,它成功返回1謝謝您提前。阿賈克斯不工作1

   <script src="http://code.jquery.com/jquery-1.6.2.js" type="text/javascript"></script> 
      <script> 
       var jq162 = jQuery.noConflict(true); 
      </script> 
      <script type="text/javascript"> 
      $(document).ready(function(){ 
       $("#submit").click(function(){ 
        var Username = $("#Username").val(); 
        var Password = $("#Password").val(); 

        $.ajax({ 
         type: "POST", 
         url: "dologin.php", 
         data: "Username=" + Username + "&Password=" + Password, 
         success: function(result){ 
          if(result=='1'){ 
          $(document.location = '/reward/home.php'); 
          } 
          if(result=='2'){ 
           $(".errors").html("Contact Administrator<br>Please provide the following error code.<br>Error Code:101"); 
          } 
          if(result=='3'){ 
           $(".errors").html("Invalid Password"); 
          } 
          else{ 
           $(".errors").html("Incorrect Credentials"); 
          } 
         } 
        }); 
       return false; 
       }); 
      })(jq162); 
      </script> 
+2

「不工作」是不是有效的錯誤消息 – 2012-03-31 12:21:39

+1

更換'數據:‘用戶名=’+用戶名+「&密碼=」 + Password'用'數據:{用戶名:用戶名,密碼:密碼}。'否則例如,具有'&'中的用戶名/密碼,將打破東西當通過一個對象,jQuery的大約需要正確維護urlencoding your values。 – ThiefMaster 2012-03-31 12:22:23

+2

'$(document.location ='/reward/home.php');'沒有任何意義。 '$()'在它周圍! – ThiefMaster 2012-03-31 12:22:51

回答

1

你,因爲你使用的不是if/else鏈得到else情況。它可能正在執行1的正確聲明,但稍後會看到:if result was 3 ? else...並且因爲它不是3,所以您將獲得其他項。改用if/else鏈。此外,除去$()周圍document.location = '/reward/home.php'

if(result=='1'){ 
    document.location = '/reward/home.php'; 
} 
else if(result=='2'){ 
    $(".errors").html("Contact Administrator<br>Please provide the following error code.<br>Error Code:101"); 
} 
else if(result=='3'){ 
    $(".errors").html("Invalid Password"); 
} 
else{ 
    $(".errors").html("Incorrect Credentials"); 
} 

這與switch做更乾淨:

switch (result) { 
    case 1: 
    document.location = '/reward/home.php'; 
    break; 
    case 2: 
    $(".errors").html("Contact Administrator<br>Please provide the following error code.<br>Error Code:101"); 
    break; 
    case 3: 
    $(".errors").html("Invalid Password"); 
    break; 
    default: 
    $(".errors").html("Incorrect Credentials"); 
}