我有一个数据库,其中有1000多个庞大的数据,以后还会增加。
我在表中显示了一些数据。 有一个搜索框,我正在根据搜索框使用ajax调用将数据库中的数据加载到该表中。
我的表格:
jQuery Ajax:
$(document).ready(function () {
$('form.form-search').on('submit', function(e) {
e.preventDefault();
var eml_search_txt = $("#eml_search").val();
url = "ajax_search.php";
$.ajax({
url: url,
type: "GET",
data : {
eml_search_txt: eml_search_txt
},
dataType: "json"
}).done(function (data) {
console.log("Dhukse: " );
$("#eml-body table").remove();
console.log("TExt get: " + data.getext);
console.log(data.mail_list);
$("#eml-body").html(data.search_list);
});
});
});
ajax_search.php:
include("connect.php");
$eml_search_txt = $_GET['eml_search_txt'];
$output = "";
$output .= "
$output .= "";
$output .= "
Thead1Thead2Thead3";$output .= "
";$output .= "
";$search_query = "SELECT * FROM table_data WHERE data_from LIKE '%".$eml_search_txt."%' OR
data_sub LIKE '%".$eml_search_txt."%' ORDER BY data_date DESC LIMIT 9 ";
$search_sql = mysqli_query($conn, $search_query);
while($row = mysqli_fetch_assoc($search_sql)) {
$data_date = date("Y-m-d", strtotime($row['data_date']));
$uid = $row['uid'];
$data_from = $row['data_from'];
$data_sub = $row['data_sub'];
$output.= "
";$output.= "
".$data_from."";$output.= "
".$data_sub."";$output.= "
".$data_date."";$output.= "
";}
$output .= "
";$json='{"search_list":"'.$output.'", "getext":"'.$eml_search_txt.'"}';
print $json;
如果我将返回限制为最多9行,则对php文件的此ajax调用可以正常工作,如下所示:
SELECT * FROM table_data WHERE data_from LIKE '%".$eml_search_txt."%' OR
data_sub LIKE '%".$eml_search_txt."%' ORDER BY data_date DESC LIMIT 9
但是,如果要根据搜索框返回所有行或多于9行,则不会返回任何内容。
据我了解,如果ajax调用需要很长时间才能返回数据,则它根本不返回任何内容,例如根据搜索从数据库返回所有行需要花费一些时间。
在这种情况下,有人可以帮助我吗? 如何根据搜索结果显示所有结果?