从PHP脚本创建一个jQuery变量?

时间:2009-11-23 01:33:58

标签: php jquery

我正在编写一个登录脚本,我想将输入发送到PHP脚本,检查它,然后做一些与我在config.php文件中匹配的东西。

伪php代码(admin_login.php)

<?php
require("../config.php");
if($_POST['password'] == $password) {
    $showLoginPage = true;
    }
    else {
        $showLoginPage = false;
    }
?> 

jQuery的:

 $("#admin_login_submit").click(function(event) {
     event.preventDefault();
     var pass = $("#admin_login_password").val();
        $.post("includes/process/admin_login.php",
                { password: pass },
                 function(data){
                    $("#show_admin_feedback").html(data);
        });

如果我可以神奇地创建jQuery代码,我想要做的就是这样:

$("#admin_login_submit").click(function(event) {
     event.preventDefault();
     var pass = $("#admin_login_password").val();
        $.post("includes/process/admin_login.php",
                { password: pass },
                 function(data){
                    $("#show_admin_feedback").html(data);
                    showLoginPage = $showLoginPage;
        });
            if(showLoginPage == true) {
                $("#main").load("logged_in.php");
            }
  });

哦,我有$("#show_admin_feedback").html(data);被退回,因为我在测试时回来了“工作”或“没工作”。 :-P。

------固定。谢谢,抖动!

PHP

<?php
require("../config.php");
if($_POST['password'] == $password) {
    header('HTTP/1.1 200 OK');
    }
    else {
        header('HTTP/1.1 404 Not Found');
    }

?> 

的jQuery

$("#admin_login_submit").click(function(event) {
     event.preventDefault();
     var pass = $("#admin_login_password").val();
        $.ajax({
            type: "POST",
            url: "includes/process/admin_login.php",
            data: "password=" + pass,
            success: function(){
              $("#main").load("logged_in.php"); },
            error: function(){
                $("#admin_login_show").html("<b>Failed Login</b>"); }
        });
  });

2 个答案:

答案 0 :(得分:4)

当登录失败时,只需修改您的php脚本即可返回404的http状态代码。这样您的回调函数就不会触发,您将保持在登录页面上。但是你需要拿出一些东西告诉用户登录失败。

或者您考虑使用$.ajax()来代替$.post()。现在,您可以重写您的php脚本,根据登录成功/失败的情况设置不同的HTTP状态代码。

e.g。成功时返回200,登录失败时返回404。

现在通过$.ajax()电话,您可以注册successerrror回调并采取相应措施。在两种情况下设置show_admin_feedback(显示表示用户成功/失败的内容)以及成功是否也调用$("#main").load("logged_in.php");

答案 1 :(得分:2)

从您的PHP代码中导出JSON,并使用您从此JSON获得的对象执行任何操作:)