使用 Javascript 获取 php 文件的输出


Obtaining output of php file with Javascript

我有一个远程存储的php文件。 它使用 post 来获取 2 个变量,"用户名"和"密码",然后根据它在我的数据库中的存在,它们将回显有效或无效。 我目前在我的安卓应用程序中使用它来登录用户。

我想使用相同的脚本登录我正在构建的网站。 我需要能够将从 HTML 表单获得的 2 个变量传递给 javascript 函数,该函数将获取变量,通过 php 查询运行它们,读取回显的输出并决定向表单返回 true 或 false。 下面是我目前为脚本编写的代码

Javascript代码:

<script type="text/javascript">
        function Login(){
            var username = document.getElementById('username').value;
            var password = document.getElementById('password').value;
            if (username == "" || password == "") {
                alert ("Please fill in username and password fields");
                return false;
            }
            $.post("my_query_url.php",{username:username, password:password}, function(data) {
                if (data.toLowerCase == "valid")
                    return true;
                else 
                    return false;
            });
        }
    </script>

网页表单:

<form action="Main.html" method="post" onsubmit=" return Login();"> 
    Username: <br>
    <input type="text" name="username" id="username"><br>
    Password: <br>
    <input type="password" name="password" id="password"><br><br>
    <input type="submit" value="Login">
</form>

目前,它总是使用任何非空用户名/密码输入将用户发送到我的主.html页面。

我不太精通这两种语言,但我需要快速学习,因为它们对我的高级项目课程学期很重要,尤其是接下来的两周。 这是否可能只与Javascript和HTML有关? 一些指示将不胜感激! 谢谢!

实际上,您几乎一直到那里。 您只需要从 Login 函数返回 false 即可防止触发表单的默认操作(即重定向到 main.html)。 然后,您不需要依赖表单来重定向用户,而是需要通过 javascript 自己执行此操作。

<script type="text/javascript">
    function Login(){
        var username = document.getElementById('username').value;
        var password = document.getElementById('password').value;
        if (username == "" || password == "") {
            alert ("Please fill in username and password fields");
            return false;
        }
        $.post("my_query_url.php",{username:username, password:password}, function(data) {
            if (data.toLowerCase() === "valid")
                window.location.href = "./Main.html"; //redirect the user
            else 
                return false;
        });
        return false
    }
</script>