0
如何使它每次(使用keyup?)某人在搜索框中键入一个字母时,它显示MySQL DB中具有相同行数的行他们中的字母(使用findUser函数)?默认情况下,它显示所有用户:PHP + jQuery + Ajax + Json打印搜索结果的每个键击
当我在上面的框中输入“.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>
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);
在user.class.php主要功能
当然,您可以[使用现有的插件](http://jqueryui.com/autocomplete/)。 – Blazemonger
我不需要自动完成正在写入的文本,我需要它使用该文本作为关键字进行搜索,然后在每次输入符号时都将其打印出来(关键字) – GytisK
您将需要使用正则表达式来匹配您的的HTML,并且如果找到,则显示.parent(
回答
我认为这将完美满足您的要求,如果您使用jQuery数据表插件。它易于使用和维护。转到https://datatables.net/,然后在表格中键入任何字符串,以匹配表中匹配字符
来源
2014-06-10 05:37:51
再次,是否有可能没有datatables插件?也许有一种方法可以调用我在user.class.php中每次点击编写的“findUser”函数? – GytisK
是的,你可以做到没有插件,发送与每个类型的字符(即在keyup事件)的Ajax调用服务器,并得到result.But whyn't现有的解决方案。是否有必要重新发明whell? –
相关问题