jQuery AJAX在我的PHP MVC上运行不佳 - php

我已经制作了一个简单的PHP MVC框架,用于我的Web应用程序。但是,当尝试使用jQuery进行AJAX请求时,它的行为不符合预期。以下是相关的代码片段:

视图

<input type="text" name="email" id="email">
<input type="password" name="password" id="password">
<a id="btnlogin">Login</a>

jQuery(放在单独的文件中)

$("#btnlogin").click(function(){
    var email = $("#email").val();
    var password = $("#password").val();

    $.ajax({
        type:"POST",
        url:"user/login",
        data:{email : email, password : password},
        cache:false,
        success:function(){
            alert("suksesssssss");
        }
    });

控制器名称:用户

public function login()
{
    $email = $_POST['email'];
    $password = $_POST['password'];
    $this->model->login($email,$password);
}

型号名称:UserModel

public function login($email,$password)
{
    $sth = $this->db->prepare("select * from tbl_user where email = :email and password = :password");
    $sth->execute(array(
        ':email' => $email,
        ':password' => Hash::create('sha256', $password, PASSWORD_HASH_KEY)
    ));
    $count = $sth->rowCount();

    if($count > 0)
    {
        $data = $sth->fetch();

        Session::init();
        Session::set('id', $data['id']);
        Session::set('fullName', $data['nama_lengkap']);


        $this->updateLastLogin($data['id']);
        $this->updateLoginCount($data['id']);

        header('location:' . URL . 'user/profile');
    }
    else
    {
        header('location:' . URL . 'home/alogin');
    }
}

登录成功后,我的目标是重定向到个人资料页面。但是功能:

header('location:' . URL . 'user/profile');

这不会运行..

是什么导致此行为?如果我使用jQuery重定向到另一个页面会更好吗?

参考方案

执行AJAX时,无法使用后端脚本重定向某人。您需要在$ .ajax()成功回调中返回要重定向到的URL(或通过js确定)。

所以:

  header('location:' . URL . 'user/profile');
}
else
{
  header('location:' . URL . 'home/alogin');
}

应该:

  echo json_encode( array( 'redirect' => 'location:' . URL . 'user/profile' ) );
}
else
{
  echo json_encode( array( 'redirect' => 'location:' . URL . 'home/alogin' ) );
}

然后,在成功回调中使用data参数:

$.ajax({
  //...
  success: function(data){
    if( data.redirect ){
      window.location = data.redirect;
    }
  }
});

jQuery Ajax加载仅适用于单个单词变量 - php

在我的PHP文件中,我将一些变量从输入框传递到链接中,该链接通过jQuery的ajax load函数在其URL中使用该变量加载页面。整个系统运行良好,但仅适用于单字变量。每当涉及到空格时,我的Ajax通话都会中断。我假设这是一个编码问题,但是我也有一些疑问。基本上,它归结为我的PHP文件中的这一行代码,这导致了混乱。是否有可能找出格式是否正确,或者为什么在多…

jQuery AJAX不向PHP发送多个提交按钮 - php

所以我的问题是,当我将表单提交到PHP时,使用jQuery通过AJAX提交表单时,使用jQuery AJAX时哪个按钮提交表单并不重要,但是当使用表单操作时,表单会提交并让我知道删除还是删除按下了更新按钮。例如,这是提交表单的HTML<input type="submit" name="update" value…

使用jQuery将值增加到attr - php

我想增加i的值。 “ for”循环不起作用。$("a[href$='.xls']").appendTo(".xl1").attr('id','xl'+i); 我搜索所有excel文件,并将它们放在容器中并增加其id的值。谢谢吉恩 参考方案 $("a[…

jQuery PHP在函数中传递值与实时单击? - php

我正在尝试通过onclick传递一些值,这对我来说要快得多。但是我需要使用某种“实时”单击,并且正在查看.on()或.delegate()。但是,如果执行这些操作中的任何一个,则在followme()中传递这些值似乎很难。有没有我看不到的某种方法? <div class='btn btn-mini follow-btn' data-…

jQuery-找不到Ajax网址 - php

好的,我敢肯定这确实很容易,而且我很愚蠢,但是似乎并不能深入了解它。我试图从我的js文件“ custom.js”中对“ helpers.php”中的某些代码进行简单的AJAX调用。但是,我仍然收到404错误,因为我似乎并没有正确遍历文件夹,尽管我确信我正在...我的文件夹结构如下:html index.php js/ custom.js includes h…