0

一般来说,我是 JQuery 的新手。我正在使用 JQuery mobile 构建一个网站,但我被困在登录表单上。我只是想将用户名和密码发送到 PHP 文件。

当我输入用户名和密码时,它会将我定向到以下链接:

http://www.mydomain.com/mainfolder/#/mainfolder/?username=abc&password=123&myLat=&myLon=

代替:

http://www.mydomain.com/mainfolder/php/login.php?username=abc&password=123&myLat=&myLon=

我希望有人可以帮助我。很抱歉,这是我在这个网站上的第一篇文章,我在发布代码时遇到了困难 :)

提前致谢。

代码是:

<form id="loginForm">
    <div data-role="fieldcontain">
          <label for="username">username</label>
          <input type="text" name="username" id="username" value="" />
    </div>
    <div data-role="fieldcontain">
          <label for="password">password</label>
          <input type="password" name="password" id="password" value="" />
    </div>
    <input type="hidden" name="myLat" id="myLat" value="">
    <input type="hidden" name="myLon" id="myLon" value="">
    <input type="submit" id ="submit" data-role="button" data-inline="true" value="submit" />
</form>
<p><script type="text/javascript">document.write(new Date());</script></p>
<div id="error"></div>
</div>

<script>
    $(document).ready(function()
        {
            $("#loginForm").submit(function(e)
            { 
                // stop form from submitting normally
                e.preventDefault();
                // clear error html
                $("#error").html('');

                dataString = $("#loginForm").serialize();

                $.ajax(
                {
                    url: "/php/login.php",
                    type: "POST",
                    data: dataString,
                    success: function() 
                    {
                        alert("success");
                        $("#error").html('submitted successfully');
                    },
                    error:function()
                    {
                    alert("failure");
                        $("#error").html('there is error while submit');
                    } 
                });
        });
    });         
    </script>

PHP代码:

<?php
    session_start();

    $username = $_post['username'];
    $password = $_post['password'];

?>
4

1 回答 1

1

你使用的是什么浏览器?尝试让您的代码标准投诉,然后再试一次。据我所知,基于 w3 规范的表单标签中需要“操作”字段。尽管这在您使用 ajax 时不会在这里发挥作用,但它可能会使浏览器感到困惑。因此,将您的表单开始标记更改为:

<form method="POST" action="/mainfolder/php/login.php" id="loginForm">

还将您的脚本声明更改为:

<script type="text/javascript">

看看是否有帮助。

编辑:刚刚确认操作字段是必需的。请参阅第 17.3 节 http://www.w3.org/TR/html401/interact/forms.html

于 2013-01-11T03:05:24.457 回答