PHP + jQuery + Ajax + Json每次按键都会打印出搜索结果

时间:2014-06-09 18:59:31

标签: jquery ajax json search keyup

我如何制作它以便每次(使用keyup?)有人在搜索框中输入一个字母,它会显示MySQL DB中具有相同字母的行(使用findUser函数)?默认情况下,它会显示所有用户:

当我在上面的框中输入“.com”时,我需要重置表格并仅显示带有.com电子邮件的行。

我当前的代码(我不知道我是否将.keyup放在正确的位置,但它似乎在正确的时间提醒我):

的index.php

<input id="search">
    <table border="1" BORDERCOLOR=black>
    <thead> 
    <tr>
        <th>Name</th><th>LastName</th><th>E-Mail</th>
    </tr>
    </thead>

    <tbody id="theContent">

    </tbody>


    </table>



    </body>

    <script type="text/javascript">

    function loadUser(){

        $.ajax({
            url: 'users.ajax.php'

        }).done(function(data){
            var HTML = '';
            data = JSON.parse(data);

            $.each(data['usersData'], function(key, val){
                HTML += getSingleUserLine(val);
            });

            $( '#search' ).keyup(function() {
                 alert( "Handler for .keyup() called." );
            });

            $('#theContent').html(HTML);

        });

    }

    function getSingleUserLine(data){
        if(data){
            var string = '';

            string = '<tr><td>'+data.fname+'</td><td>'+data.lname+'</td><td>'+data.email+'</td></tr>';

            return string;

        }else{
            return false;
        }
    }


    $(document).ready(function(){

        loadUser();

    });
    </script>

user.class.php中的主要功能:

function loadUser($userID = false){
        global $DB;
        if($userID === false){
            $data = $DB->query("SELECT * FROM `users`");
        }else{
            $data = $DB->query("SELECT * FROM `users` where ID = '$userID' ");
            $data = $data[0];
        }
        return $data;
    }


    function findUser($phrase){
        global $DB;
        $result= $DB->query("SELECT * FROM users WHERE fname LIKE '%$phrase%' OR lname LIKE '%$phrase%' OR email LIKE '%$phrase%'");
        return $result;
    }

最后是users.ajax.php:

$return = array();

include('db.class.php');
include('user.class.php');

$DB = new DB (Cant give you this :( )
$USER = new User(); 




$data = $USER->loadUser();


$return['usersData'] = $data;

echo json_encode($return);

1 个答案:

答案 0 :(得分:0)

我认为如果您使用jquery datatable插件,这将非常适合您的需求。它易于使用和维护。转到https://datatables.net/并在表格中键入任何符合表格的字符串