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? –
相關問題