我试图了解如何将 JQuery 与 PHP 和 MySQL 一起使用。我在网上找到了这段代码,但它对我不起作用。该代码应该是一个简单的登录屏幕,它使用 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";
}
?>