将mysql echo作为错误返回给ajax

我正在使用ajax创建登录页面。当用户名和传递错误时它应该显示错误,当传递正确时它应该重定向到另一个页面。但是在这两种情况下调用成功函数。

 $(document).ready(function() { $("#simple-post").click(function() { $("#ajaxform").submit(function(e) { $("#simple-msg").html(""); var postData = $(this).serializeArray(); var formURL = $(this).attr("action"); $.ajax( { url : formURL, type: "POST", data : postData, success:function(data, textStatus, jqXHR) { alert(data.status); $("#simple-msg").html('
'+data+'

'); }, error: function(jqXHR, textStatus, errorThrown) { $("#simple-msg").html('

AJAX Request Failed
textStatus='+textStatus+', errorThrown='+errorThrown+'

'); } }); e.preventDefault(); //STOP default action }); $("#ajaxform").submit(); //SUBMIT FORM }); });

这是PHP

  

我想显示错误的用户名传递,如果不成功..如何做到这一点,请我是ajax新

请清楚了解jquery.Ajax的成功回调。 文档说:如果请求成功,则调用一个函数。

在您的情况下,如果输入的用户名和密码错误,请求成功。

要使其正常工作,请将此部分的PHP代码更改为:

 $redirect = ''; if($UserData['UserName'] != '') { session_start(); $error = 0; $message = 'Valid'; $_SESSION['UserId'] = $myusername; $typ = $UserData['Type_user']; if($typ == "Dealer") { $redirect = 'Dealer/EditLoginDetails.php'; } else if($typ == "Individual") { $redirect = '/Dealer/EditLoginDetails.php'; } else { $redirect = '/Builder/managep.php'; } } else { $error = 1; $message = 'Invalid username or password'; } echo json_encode(array('error' => $error, 'message' => $message, 'redirect' => $redirect)); 

和jquery代码,

 $.ajax({ url : formURL, type: "POST", data : postData, dataType:'json', success:function(data, textStatus, jqXHR) { if(data.error == 1) { $("#simple-msg").html('
'+data.message+'< /pre>'); } else { window.location = data.redirect; } } });

什么HTTP状态代码在jQuery.ajax中算作成功? 说以下代码对AJAX响应是成功的:

status> = 200 && status <300 || 状态=== 304

所以你可以设置错误标题:

 header('HTTP/1.0 403 Forbidden'); echo " wrong username or password"; 
  success:function(data, textStatus, jqXHR) { if(data== "error message"){ //display error here } else{ $("#simple-msg").html('
'+data+'< /pre>'); } },

错误信息可能像错误/成功等。

 success: function(data) { if(data.status == 'success') alert("Thank you for subscribing!"); else if(data.status == 'error') alert("Error on query!"); }