0

如果这真的很愚蠢,我很抱歉。我已经搜索但似乎无法找到答案。我希望我能解释我想要做什么。

我希望能够查询数据库以及其中是否有记录以显示 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()
4

4 回答 4

0

而不是发回“1”,而是发回一个 json 响应,例如:

   /* record exists */
   {status:1, html:'server generated message about record'} 
   /* doesn't exist */
    {status:0} 

这将允许您仍然根据响应数据status值更改 css

可以使用$.postajax速记方法:

$.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')
于 2012-06-27T23:37:19.923 回答
0

您可以在 PHP 中输​​出一个字符串,然后使用 jQuery 将该文本值设置为一个元素($('#element').val(responseFromServer);$('#element').html(responseFromServer);

于 2012-06-27T23:24:01.487 回答
0

您通常会向服务器上托管的页面发送 ajax 请求。所以你不能直接访问你的数据库而不通过你的服务器。您需要在服务器上编写一个查询数据库的函数,然后使用 ajax 从 javascript 调用该函数。

于 2012-06-27T23:24:20.577 回答
0

检查.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);

从你的 jQuery 中:

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);
    }
}
于 2012-06-27T23:30:40.683 回答