用PHP实现jQuery自处理AJAX请求

用PHP实现jQuery自处理AJAX请求,php,jquery,ajax,Php,Jquery,Ajax,我有一个可用的php登录表单,我现在正试图在同一页面中使用jQueryAjax请求处理该表单,但是在提交具有正确凭据的表单时,我仍然会收到“无效登录”消息 jquery和ajax有点新,但我的代码如下。任何一点解释的帮助,使我可以学习和理解,而不是复制非常感谢 以下内容按此顺序在同一页上 PHP HTML $(文档).ready(函数(){ $(“#登录”)。单击(函数(){ var action=$(“#form1”).attr('action'); 变量形式_数据={ 用户名:$(“#

我有一个可用的php登录表单,我现在正试图在同一页面中使用jQueryAjax请求处理该表单,但是在提交具有正确凭据的表单时,我仍然会收到“无效登录”消息

jquery和ajax有点新,但我的代码如下。任何一点解释的帮助,使我可以学习和理解,而不是复制非常感谢

以下内容按此顺序在同一页上

PHP

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();
}