我正在用ajax创建登录页面。当用户名和传递错误时它应该显示错误,当传递正确时它应该重定向到另一个页面。但是在这两种情况下成功函数被调用..
<script>
$(document).ready(function()
{
$("#simple-post").click(function()
{
$("#ajaxform").submit(function(e)
{
$("#simple-msg").html("<img src='loading.gif'/>");
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('<pre><code class="prettyprint">'+data+'</code></pre>');
},
error: function(jqXHR, textStatus, errorThrown)
{
$("#simple-msg").html('<pre><code class="prettyprint">AJAX Request Failed<br/> textStatus='+textStatus+', errorThrown='+errorThrown+'</code></pre>');
}
});
e.preventDefault(); //STOP default action
});
$("#ajaxform").submit(); //SUBMIT FORM
});
});
</script>
这是php
<?php
ob_start();
include 'CUserDB.php';
session_start();
include 'config.php';
$myusername=$_POST['txtusername'];
$mypassword=$_POST['txtpassword'];
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword=mysql_real_escape_string($mypassword);
$qry = "SELECT UserName,Type_user FROM login WHERE UserName = '".$myusername."' AND password = '".$mypassword."' ";
$result = mysql_query($qry) or die ("Query failed");
$UserData = mysql_fetch_array($result);
if($UserData['UserName'] != '')
{
session_start();
$_SESSION['UserId'] = $myusername;
$typ = $UserData['Type_user'];
if ( $typ == "Dealer")
{
header('location:Dealer/EditLoginDetails.php');
}
else if ($typ == "Individual")
{
header('location:/Dealer/EditLoginDetails.php');
}
else
{
header('location:/Builder/managep.php');
}
}
else
{
echo " wrong username or password";
}
?>
我想显示错误的用户名传递,如果不成功..如何做到这一点请我是新的ajax
答案 0 :(得分:2)
请清楚了解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('<pre><code class="prettyprint">'+data.message+'</code>< /pre>');
} else {
window.location = data.redirect;
}
}
});
答案 1 :(得分:1)
What HTTP status codes count as success in jQuery.ajax?表示以下代码对AJAX响应成功:
状态&gt; = 200&amp;&amp;状态&lt; 300 ||状态=== 304
所以你可以设置错误标题:
header('HTTP/1.0 403 Forbidden');
echo " wrong username or password";
答案 2 :(得分:0)
success:function(data, textStatus, jqXHR) {
if(data== "error message"){
//display error here
} else{
$("#simple-msg").html('<pre><code class="prettyprint">'+data+'</code>< /pre>');
}
},
错误信息可能像错误/成功等。
success: function(data) {
if(data.status == 'success')
alert("Thank you for subscribing!");
else if(data.status == 'error')
alert("Error on query!");
}