0

AJAX/PHP フォームの送信に問題があります。

私のajaxは次のとおりです。

<script type="text/javascript">
        $('#loginForm').submit(function() {
           checkLogin();
        });

        function checkLogin()
        {
             $.ajax({
                url: "login.php",
                type: "POST",
                data: {
                    username: $("#username").val(),
                    password: $("#password").val()
                },
                success: function(response)
                {
                    if(response == 'true')
                    {
                        window.location.replace("main.html");
                    }
                    else
                    {
                        $("#errorMessage").html(response);
                    }
                }
            });
        }
        </script>

私のフォーム:

<form id="loginForm" data-ajax="false">
    <label id="errorMessage"></label>
    <div data-role="fieldcontain">
        <label for="username">Username:</label>
        <input id="username" type="text" placeholder="Username" />
    </div><!-- End Contained Fields -->
    <div data-role="fieldcontain">
        <label for="password">Password:</label>
        <input id="password" type="password" placeholder="Password" />
    </div><!-- End Contained Fields -->
    <div data-role="fieldcontain">
        <input type="submit" id="login" value="Login" />
    </div><!-- End Contained Fields -->
    </form><!-- End Form -->

そして、私の login.php スクリプト:

    <?php

$username = mysql_real_escape_string($_POST['username']);
$password = md5(mysql_real_escape_string($_POST['password']));

if(!empty($username) && !empty($password))
{
    $db = new PDO('mysql:host=localhost;dbname=mobile;charset=utf8', 'root', 'password');
    try {
        $stmt = $db->query("SELECT COUNT(*) FROM users WHERE username='$username' and password='$password'");
        if(intval($stmt->fetchColumn()) === 1)
        {
            echo 'true';
        }
        else
        {
            echo 'false';
        }
    } catch(PDOException $ex) {
        echo "An error has occured!";
    }
}

?>

私は元々生の php だけを使用して JQuery Mobile アプリケーション全体をプログラミングしていましたが、最近、PhoneGap を使用して IOS および Android に移植できるようにするには、AJAX と Html を使用する必要があることがわかりました。

私は ajax を使用するのはかなり初めてで、ここでできる限り多くの記事/トピックを読んで、それを機能させようとしました。構文に問題があるのか​​、正しく処理していないのかわかりません。

ローカル マシンが mysql サーバーをロードしています (データベース名はモバイル、ロードしようとしているテーブルはユーザーです)。PHPで問題なく動作するため、その部分はすべて正しいことを知っています。

誰かが私の問題を説明できますか? ありがとうございました。

4

2 に答える 2

0

問題は次の行です。

 window.location.replace('main.html'); 

次のように変更します。

 window.location.href='main.html';
于 2013-08-21T15:15:18.030 に答える