1

我是 javascript 和 jquery 的新手,需要你的帮助。我已经尝试搜索论坛,但我无法找到解决方案

我正在尝试将某些内容发布到 php 文件,然后重定向到我选择的页面。帖子正常发生,但重定向不正确。

html表单是

<form action="userinfo.php" method="post">
    <p><input type="text" required maxlength=7 name="login" id="login" value="" placeholder="Username"></p>
    <p><input type="password" required name="password" id="password" value="" placeholder="Password"></p>
    <p class="remember_me">
      <label>   
        <input type="checkbox" name="remember_me" id="remember_me">
        Remember me on this computer
      </label>
    </p>
    <p class="submit"><input type="button" id="searchForm" onclick="SubmitForm();redirect()" value="Login"></p>
  </form>

jquery代码是

<script>
        function SubmitForm() {
        var login = $("#login").val();
        var password = $("#password").val();

        $.post("userinfo.php", {login: login, password: password },
        function(data) {
            alert("Data Loaded: " + data);
        });
        }
        function redirect(){
            alert("Redirecting..");
            window.location = "mainpage.html"
        }
    </script>

SO redirect() 显然没有被调用。感谢任何关于为什么会发生这种情况的帮助。请注意,我不是 javascript 或 jquery 专家。只是想运气学点东西.. :-)

ps:我可以从 php 文件重定向,但不喜欢这样做。

4

3 回答 3

2

只有在表单提交(登录)成功完成后才需要重定向

<input type="button" id="searchForm" onclick="SubmitForm()" value="Login">

然后

<script>
    function SubmitForm() {
    var login = $("#login").val();
    var password = $("#password").val();

    $.post("userinfo.php", {login: login, password: password },
    function(data) {
        alert("Data Loaded: " + data);
        redirect();//redirect here
    });
    }
    function redirect(){
        alert("Redirecting..");
        window.location = "mainpage.html"
    }
</script>
于 2013-08-15T06:21:17.100 回答
1

您必须在发布请求成功时调用该函数

    <script>
                function SubmitForm() {
                var login = $("#login").val();
                var password = $("#password").val();

                $.post("userinfo.php", {login: login, password: password },
                function(data) {
                    alert("Data Loaded: " + data);
                    // calling the redirect
                    redirect();
                });
                }
                function redirect(){
                    alert("Redirecting..");
                    window.location = "mainpage.html"
                }
        </script>
于 2013-08-15T06:22:08.017 回答
0

首先,您为什么同时使用表单操作和 jquery post 进行相同的操作。那不是一个好习惯。

使用 jquery 发布数据调用 php,如果响应 id 成功,则重定向到下一页。

 <script>
    var login = $("#login").val();
    var password = $("#password").val();

    $.post("userinfo.php", {login: login, password: password },
    function(data) {
        if(data = "success"){
         console.log("Redirecting..");
         window.location = "mainpage.html"
        }
    });
    }
</script>
于 2013-08-15T06:31:08.877 回答