如果这真的很愚蠢,我道歉。我搜索过但似乎无法找到答案。我希望我能解释一下我想做什么。
我希望能够查询数据库,并且是否有记录在其中显示span / div中的记录,或者如果没有则显示未找到的错误消息。
我有一个jquery检查并运行以检查用户名是否在数据库中,我想知道的是,修改这个来拉取所有数据并在span / div上显示它是多么容易原始页面。
这是我的jquery:
$(document).ready(function () {
$('#username').keyup(username_check);
});
function username_check() {
var username = $('#username').val();
if (username == "" || username.length < 2) {
$('#username').css('border', '1px #D5D5D5');
$('#cross').hide();
$('#tick').hide();
} else {
jQuery.ajax({
type: "POST",
url: "check.php",
data: 'username=' + username,
cache: false,
success: function (response) {
if (response == 1) {
$('#username').css('border', '2px #C33 solid');
$('#tick').hide();
$('#cross').fadeIn();
} else {
$('#username').css('border', '2px #090 solid');
$('#cross').hide();
$('#tick').fadeIn();
}
}
});
}
}
我可以在一个页面上执行所有操作并从同一页面查询数据库,而不是将其发布到另一个页面,因为我不知道如何将结果返回到调用页面吗?
我希望我已经解释了我想做的事情。如果我没有
,请道歉这是PHP代码:
$username = trim(strtolower($_POST['username'])); $username = mysql_escape_string($username); $query = "SELECT adbkid FROM person WHERE adbkid = '$username' LIMIT 1"; $result = mysql_query($query); $num = mysql_num_rows($result); echo $num; mysql_close()
答案 0 :(得分:0)
您可以在PHP中输出字符串,然后使用jQuery将该文本值设置为元素($('#element').val(responseFromServer);
或$('#element').html(responseFromServer);
答案 1 :(得分:0)
您通常会向服务器上托管的网页发送ajax请求。因此,如果不通过服务器,则无法直接访问数据库。您需要在服务器上编写一个查询数据库的函数,然后使用ajax从javascript调用该函数。
答案 2 :(得分:0)
check.php
$data = array();
$data['exists'] = false;
if(!isset($_POST['username'])) {
echo json_encode($data);
exit();
}
$username = mysql_escape_string($_POST['username']);
$query = "SELECT adbkid FROM person WHERE adbkid = '$username' LIMIT 1";
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);
if(count($row) == 1) {
$data = $row;
$data['exists'] = true;
}
return json_encode($data);
success: function(response) {
/**
* For instance, for a table with id, username, password and email you have
* data.exists = true/false;
* data.id = 1;
* data.username = 'foo';
* data.password = 'sample data password';
* data.email = 'foo@bar.com';
*/
if(response.exists === true) {
$('#username').val(response.username);
$('#email').val(response.email);
}
}
答案 3 :(得分:0)
而不是发回“1”而不是发送回json响应:
/* record exists */
{status:1, html:'server generated message about record'}
/* doesn't exist */
{status:0}
这样您仍然可以根据响应数据status
值
可以使用$.post
ajax简写方法:
$.post('check.php',{username: username}, function(response){
var upDateElement=$('#spanID');
if(response.status && response.status== 1){
$('#username').css('border', '2px #C33 solid');
$('#tick').hide();
$('#cross').fadeIn();
upDateElement.html( response.html)
}else{
$('#username').css('border', '2px #090 solid');
$('#cross').hide();
$('#tick').fadeIn();
upDateElement.html('Message html for no record found')
}
},'json')