用Javascript获取php文件的输出

时间:2015-03-14 04:04:44

标签: javascript php html

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

我想使用相同的脚本登录我正在构建的网站。我需要能够将我从HTML表单中获得的2个变量传递给javascript函数,该函数将获取变量,通过php查询运行它们,读取echoed输出并决定向表单返回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>

HTML表单:

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

目前,它始终将用户发送到我的Main.html页面,并输入任何非空的用户名/密码。

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

1 个答案:

答案 0 :(得分:0)

你实际上几乎都在那里。您只需要从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>