我正在尝试构建一个页面,该页面在搜索之前显示db中的所有数据,而在搜索之后它应该仅显示搜索结果。
到目前为止,我已经能够在搜索后显示数据。
我正在尝试在搜索之前显示它。。也就是说,我必须在搜索甚至开始之前(即页面加载时)显示一次数据
我能够显示搜索结果,并且仅在按下任意键时才能显示db中的所有数据。
页面加载时,我应该能够查看db中的所有数据。
我已经尝试了下面的代码,但是没有用...
$(document).ready(function() {
$('#search_text').keyup(function() {
var txt = $(this).val();
console.log(txt);
if (txt == '') {
console.log("Enter text");
$('#result').html('');
$.ajax({
url: "fetch_data.php",
type: "POST",
data: {search: txt},
dataType: "text",
success: function(data) {
console.log("Data = "+data);
$('#result').html(data);
}
})
}
else {
$('#result').html('');
$.ajax({
url: "fetch_data.php",
type: "POST",
data: {search: txt},
dataType: "text",
success: function(data) {
console.log("Data = "+data);
$('#result').html(data);
}
})
}
})
})
我的 fetch_data.php 是:
<?php
include_once "class.php";
$class = new Class();
if($_POST["search"] == '') {
// echo "Empty";
$class->list();
}
else {
$search_data = $_POST["search"];
$class->search($search_data);
}
?>
请帮助...
答案 0 :(得分:0)
我明白了!
我更改了 js 文件,如下所示:
$(document).ready(function() {
$('input[name="search_text"]').on('keyup', function() {
var input, filter, tr, td, i;
input = $(this);
filter = input.val().toUpperCase();
tr = $("table tr");
for (i = 0; i < tr.length; i++) {
td = tr[i].getElementsByTagName("td")[0];
if (td) {
if (td.innerHTML.toUpperCase().indexOf(filter) > -1) {
tr[i].style.display = "";
} else {
tr[i].style.display = "none";
}
}
}
})
})
和我的 fetch_data.php 只有:
<?php
$class = new Class();
$class->list();
?>
现在可以使用。.