php可以回显jQuery代码并立即执行吗?

时间:2018-02-06 06:51:13

标签: javascript php jquery ajax login

我对jQuery和PHP有点新鲜。我的老板需要我写一个登录系统来保护一个显示公司商业机密的网页,这只是一个单独的html / php文件。

我做了什么:

我通过ajax,php和MySQL数据库创建了登录系统。在我的login.html中,我使用jQuery从登录表单中获取用户名和密码信息,并通过ajax直接将它们发送到login.php:

<script>
        $(document).ready(function(){

            $("#login-form").on("submit", function(e){

                e.preventDefault();

                var username    = $("#username").val();
                var password    = $("#password").val();

                var loginData = "username=" + username + "&password=" + password;

                $.ajax({
                    method: "post",
                    url:    "login.php?",
                    data:   loginData,
                    success: function(backData){
                        $("#login-error").html(backData);
                    }
                });
            });
        });
</script>

在我的login.php中,我最初尝试使用

echo "<script>window.location.href='pages/secrets.html'</script>";
如果登录信息匹配,

切换到秘密页面,但后来我意识到我是一个延迟,因为这将直接显示在浏览器的URL栏上,人们可以通过键入确切的URL来访问此页面,如:

https://example.com/secrets.html

然后我创建了一个id为“page-swtich”的div,并尝试回显此代码,只使用jQuery中的load()方法将该页面加载到div:

echo '<script>
    $(document).ready(function(){
        $("#page-switch").load("secret.html");
    });
</script>';

这似乎不起作用。

所以,如标题所示,是否有可能?如果没有,那么解决我的问题可能是更好的做法?我已经检查了jQuery的load()后面有什么vanilla JS代码,但没有找到任何实际结果。

由于

1 个答案:

答案 0 :(得分:0)

如果我可以提出建议?

echo '<script>
    $(document).ready(function(){
        $("#page-switch").load("secret.html");
    });
</script>';

这可能有点矫枉过正。由于文档是在此调用之前加载的,因此您的文档可能无法触发。稍微简化一下,然后返回页面......

echo 'secret.html'

在ajax上成功添加.load

success: function(page){
   $("#page-switch").load(page);
}

另一种方法是使用header("Location: secret.html");,您可以将其设置为仅在成功时重定向,在失败时回显数据