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で問題なく動作するため、その部分はすべて正しいことを知っています。
誰かが私の問題を説明できますか? ありがとうございました。