php - Jquery 表单插件

标签 php jquery html ajax

我正在使用 Jquery 表单插件提交登录表单数据。这很好用,但我在将成功登录的用户从 PHP 脚本中的登录页面重定向到客户端面板时遇到问题,也就是说,每当用户成功登录时,我都会使用 header("location:panel.php") 进行重定向在我的 php 脚本中,此页面作为响应发送回登录页面,并将嵌入登录页面而不是显示为整个页面。

jquery 代码;

$(document).ready(function(){
    $("#loginform").ajaxForm({
        target: '#responselogin'
    }).submit();
});

php代码;

<?php
$username=$_POST['username'];
$password=$_POST['password'];
if($username=="tarhe" && $password=="oweh") {
    header("location:panel.php");
} else {
    echo"login failed";
}
?>

我需要帮助,提前致谢

最佳答案

您使用ajax,因此您的301位置 header 不会对整个浏览器窗口产生影响。您必须将结构化数据返回到您的 javascript 并使用 javascript 重定向。

$(document).ready(function(){
$("#loginform").ajaxForm({
success: function (data) {
   if (data == "login failed") {
       $("#responselogin").html("Login Failed");
   } else {
       window.location.href = "panel.php";
   }
}
).submit();
});

如果您为此使用 json 响应,实际上会更好。因为它的格式更适合浏览器使用。

要使用 json 处理此问题,您可以执行以下操作。首先更改您的 php 代码以返回 json 响应

$success = 0;
if($username=="tarhe" && $password=="oweh") {
   $success = 1;
}

echo json_encode(array('success' => $success));

然后在你的 JavaScript 代码中

 $(document).ready(function(){
    $("#loginform").ajaxForm({
    type: 'json',
    success: function (data) {
       if (data.success == 0) {
           $("#responselogin").html("Login Failed");
       } else {
           window.location.href = "panel.php";
       }
    }
    ).submit();
    });

关于php - Jquery 表单插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18181777/

相关文章:

php - 正确编写查询 php pdo

php - Preg_match (yyyy-mm-dd hh :mm:ss) - only this format

php - 如何通过 AJAX 以正确的格式将一组复选框值发送到 PHP?

javascript - 在 Jade 和 Javascript 之间共享布局信息

javascript - 页面源没有动态 div 元素

php - 慢速 SQL 查询 - 找不到

jquery - Yii CWidget - 依赖下拉菜单

javascript - 通过查询仅删除一个 div

javascript - 下拉/组合框中已选择的项目应反射(reflect)为单击标签时所选择的

asp.net - 如何在 iframe 中提交后刷新 iframe 父页面?