使用数据库记录填充span / div

时间:2012-06-27 23:19:24

标签: php jquery mysql

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

我希望能够查询数据库,并且是否有记录在其中显示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 个答案:

答案 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);
来自你的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);
    }
}

答案 3 :(得分:0)

而不是发回“1”而不是发送回json响应:

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

这样您仍然可以根据响应数据status

更改css

可以使用$.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')