2017-05-29 406 views
0

我有一個AJAX代碼,用於檢查密碼是否存在。如果是,則發送「OK」作爲輸出,否則「不正確」作爲輸出。我想要在AJAX調用的響應中成功處理程序來做基於此的任務。如何處理它?我想如果密碼是正確的,要刪除表單元素中的殘疾人的屬性,否則我想我希望表單元素的屬性保持爲禁用狀態。 AJAX代碼GOE是這樣的:如何在ajax調用和響應中使用'if - else'來處理成功?

$("#currentpassword").keyup(function() { 
    var name = $(this).val(); 

    if (name.length > 5) { 
     $("#result").html('checking...'); 



     $.ajax({ 

      type: 'POST', 
      url: 'checkPassword.php', 
      data: $(this).serialize(), 
      success: function(data) { 
       if (data == "1") { 
        $("#result").html(data); 
        $("#newpassword").removeAttr("disabled"); 
        $("#confirmpassword").removeAttr("disabled"); 

       } else { 
        $("#result").html(data); 

       } 
      } 


     }); 
     return false; 
    } else { 
     $("#result").html(''); 
    } 
}); 

checkpassword PHP文件看起來像如下:

<?php 

    include_once 'includes.php'; 




// Submitted form data 

     $currentpassword=$_POST['currentpassword']; 


     $result = mysqli_query($db,"SELECT * FROM `users` WHERE `password`='$currentpassword' AND `username`='$session_username'"); 
$row = mysqli_num_rows($result); 

if($row!=1) { 
    echo "<span style='color:red;'>Incorrect Password !!!</span>";; 

} 
else { 
    echo "OK"; 
} 

// Output status 

?> 
+0

而不是'if(data ==「1」){',去'if(data ==「OK」){'當您從PHP代碼返回OK時。 – vijayP

+0

你的php永遠不會發回'「1」'所以ajax回調沒有找到正確的響應 - 它發送'OK'或'不正確的密碼!' – RamRaider

+0

@vijayP是啊我試過如果(數據==「確定」)仍然無法正常工作 – user21488

回答

0

的好方法是將PHP文件應該是這樣的

<?PHP 

header('Content-type:application/json;charset=utf-8'); 

include_once 'includes.php'; 

$currentpassword=$_POST['currentpassword']; 

$result = mysqli_query($db,"SELECT * FROM `users` WHERE `password`='$currentpassword' AND `username`='$session_username'"); 
$count = mysqli_num_rows($result); 

if($count! = 1) { 
    header('HTTP/1.1 401 Unauthorized', true, 401); 
    echo json_encode('In Correct Password'); 
} else { 
    header('HTTP/1.1 404 Not Found', true, 404); 
    echo json_encode('Not Found'); 
} 

和你的jQuery將be

$.ajax({ 

      type: 'POST', 
      url: 'checkPassword.php', 
      data: $(this).serialize(), 
      success: function(data) { 
       // Only 200 comes here 
      }, error(jqXHR, exception) { 
       // All errors except 200 comes here. 
      } 


     }); 

希望這可以幫助

+0

函數(數據){ //只有200來到這裏 \t \t $(「#result」)。html(data); $(「#newpassword」)。removeAttr(「disabled」); $(「#confirmpassword」)。removeAttr(「disabled」); (error)(jqXHR,exception){ },error(jqXHR,exception){(「#result」)。html(data); }我改變了它..它是正確的? @Reiah Paul Sam – user21488

+0

@ user21488如何在'error()'函數內部看到'var data'? –

相關問題