我想了解如何在PHP和MySQL中使用JQuery。我在網上發現了這個代碼,但它不適合我。該代碼應該是一個簡單的登錄屏幕,它使用JQuery向用戶輸出消息而不重定向頁面。我已經檢查過每一個人(數據庫,文件,文件名等),一切工作正常。如果我刪除:爲什麼這個jquery代碼無法正確執行?
"$("#myForm").submit(function() {
return false;
});"
從腳本,登錄工作,但它重定向到實際的PHP頁面這是我不想要的東西。我希望PHP文件的輸出語句在不重定向的情況下在HTML頁面上彈出。如果我保留那部分代碼,當點擊提交按鈕時(填充字段時)什麼都不會發生。如果我沒有輸入任何內容,我會收到消息「請輸入用戶名和密碼」。如代碼所示,所以我知道JQuery正在工作。但是輸入任何時間信息,提交時都不會發生任何事情。我認爲這個問題與以下幾點有關:
function(data) {
$("div#ack").html(data);
});
$ .post函數的參數。我在整個腳本中放置了警報,並且未執行放置在該函數中的警報。誰能告訴我發生了什麼事?
HTML代碼:
<html>
<head><title>Login Form: JQuery + PHP + AJAX</title></head>
<body>
<form id="myForm" action="http://localhost/login.php" method="POST">
username: <input type="text" name="username" id="username"/><br />
password: <input type="password" name="password" id="password"/><br />
<button id="submit">Login</button>
</form>
<div id="ack"></div>
<script type="text/javascript" src="jquery-1.8.3.min.js"></script>
<script type="text/javascript" src=my_script.js"></script>
</body>
</html>
JQuery的代碼(my_script.js):
$("button#submit").click(function() {
if($("#username").val() == "" || $("#password").val() == "")
$("div#ack").html("Please enter both username and password.");
else
$.post($("#myForm").attr("action"),
$("myForm :input").serializeArray(),
function(data) {
$("div#ack").html(data);
});
$("#myForm").submit(function() {
return false;
});
});
PHP代碼(login.php中):
<?php
mysql_connect('localhost','root','pass');
mysql_select_db('people');
$username = mysql_real_escape_string($_POST["username"]);
$password = mysql_real_escape_string($_POST["password"]);
if(empty($username) || empty($password))
echo "Username and Password Mandatory - from PHP";
else {
$sql = "SELECT count(*) FROM users WHERE(username='$username' AND password='$password')";
$res = mysql_query($sql);
$row = mysql_fetch_array($res);
if($row[0] > 0)
echo "Login Successful";
else
echo "Login Failed";
}
?>
對不起,延遲迴復。我現在就試試吧! – bandrei2408 2013-03-20 10:16:06