我如何制作它以便每次(使用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);
答案 0 :(得分:0)
我认为如果您使用jquery datatable插件,这将非常适合您的需求。它易于使用和维护。转到https://datatables.net/并在表格中键入任何符合表格的字符串