用PHP实现jQuery自处理AJAX请求
我有一个可用的php登录表单,我现在正试图在同一页面中使用jQueryAjax请求处理该表单,但是在提交具有正确凭据的表单时,我仍然会收到“无效登录”消息 jquery和ajax有点新,但我的代码如下。任何一点解释的帮助,使我可以学习和理解,而不是复制非常感谢 以下内容按此顺序在同一页上 PHP用PHP实现jQuery自处理AJAX请求,php,jquery,ajax,Php,Jquery,Ajax,我有一个可用的php登录表单,我现在正试图在同一页面中使用jQueryAjax请求处理该表单,但是在提交具有正确凭据的表单时,我仍然会收到“无效登录”消息 jquery和ajax有点新,但我的代码如下。任何一点解释的帮助,使我可以学习和理解,而不是复制非常感谢 以下内容按此顺序在同一页上 PHP HTML $(文档).ready(函数(){ $(“#登录”)。单击(函数(){ var action=$(“#form1”).attr('action'); 变量形式_数据={ 用户名:$(“#
HTML
$(文档).ready(函数(){
$(“#登录”)。单击(函数(){
var action=$(“#form1”).attr('action');
变量形式_数据={
用户名:$(“#用户名”).val(),
密码:$(“#密码”).val(),
这是阿贾克斯:1
};
$.ajax({
类型:“POST”,
url:location.href,
数据:表格数据,
成功:功能(响应)
{
如果(响应=‘成功’)
$(“#form1”).slideUp('slow',function(){
$(“#message”).html(“您已成功登录!
”;
});
其他的
$(“#message”).html(“无效的用户名和/或密码。
”);
}
});
返回false;
});
});
登录表单
问题是您实际上没有告诉PHP输出任何内容,因此很明显,进行AJAX调用的页面在成功登录时将不会收到任何内容,并且什么也没有!='success'
,这就是它显示错误页面的原因
登录成功时,您应该回显'success'
字符串
...
if( $num_row >=1 )
{
session_start();
$_SESSION['logged'] = TRUE;
$_SESSION['user_name']=$row['username'];
header('Location: index.php');
exit('success');
}
else
{
exit('Invalid login. Please try again.');
}
...
在jQuery中调用ajax时,可以选择在成功时返回响应。在本例中,您通过jQuery检查response==“success”
。在PHP中,您永远不会输出“success”
——因此它总是返回false
试试这个:
if( $num_row >=1 )
{
session_start();
$_SESSION['logged'] = TRUE;
$_SESSION['user_name']=$row['username'];
echo "success";
exit();
}
else
{
exit();
}
别忘了清理你的输入。谢谢你的回复!我试着用你的回复修改我的代码,但仍然不起作用。我对你的评论有点困惑,你能提供进一步的解释吗?非常感谢。
...
if( $num_row >=1 )
{
session_start();
$_SESSION['logged'] = TRUE;
$_SESSION['user_name']=$row['username'];
header('Location: index.php');
exit('success');
}
else
{
exit('Invalid login. Please try again.');
}
...
if( $num_row >=1 )
{
session_start();
$_SESSION['logged'] = TRUE;
$_SESSION['user_name']=$row['username'];
echo "success";
exit();
}
else
{
exit();
}