PHP可以回声返回jQuery代码并立即执行它



我对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>

和在我的登录名中,我最初尝试使用

echo "<script>window.location.href='pages/secrets.html'</script>";

如果登录信息匹配,要切换到秘密页面,但是后来我意识到这是愚蠢的,因为这将直接显示在浏览器的URL栏上,人们可以通过键入确切的URL访问此页面,例如:

https://example.com/secrets.html

因此,我创建了一个带有ID" page-swtich"的Div,并尝试回声此代码以使用load((方法从jQuery使用jquery来加载此页面:

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

这似乎不起作用。

那么,这可能吗?如果没有,可以更好地解决我的问题?我已经检查了JQuery的Load((背后的Vanilla JS代码,但没有找到任何实际结果。

如果我可以提出建议?

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");,您可以将其设置为仅重定向成功,回声返回失败

最新更新