[英]How to view default data from the table before ajax search takes place using php and sql server
这是我的index.php文件
$(document).ready(function(){ $('#search').keyup(function(){ var txt = $(this).val(); if(txt.length != ''){ $.ajax({ url:"php/search.php", method:"post", data:{search:txt}, dataType:"text", success:function(data){ $('#result').html(data); } }); } else { $('#result').html(''); } }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <h3 align="center">This is a sample of web application using sql server database and php manager in IIS</h3> <br> <input type="text" name="search" id="search" placeholder="Search keywords" autocomplete="off"/> <br><br> <div id="result"></div>
如何确保在搜索发生之前可以先查看默认表(例如:SELECT * FROM pclisting)。 换句话说,当用户未在搜索文本框中输入任何内容时,如何在同一div(#result)中的“ pclisting”表中显示数据?
现在,只有键入了关键字,我才能查看所有数据。否则,它将显示一个空的#result div。
如果我理解正确,那么您希望在首次加载页面时显示所有结果,然后在用户键入内容时按击键内容进行过滤。
为此,您需要在search.php中有一个条件,当传递给它的'search'参数的值为null(或空字符串,或您选择的任何内容)时,它将返回所有结果。 然后,您需要首先在页面加载时运行ajax脚本。
您应该将ajax方法分离为一个单独的函数,该函数可以在按键事件处理程序之外调用。 这样,您可以在初始加载时调用它以返回所有结果,然后使用来自侦听器的击键值再次调用它。 像这样:
function getResults(txt='') {
$.ajax({
url:"php/search.php",
method:"post",
data:{search:txt},
dataType:"text",
success:function(data) {
$('#result').html(data);
}
});
}
$(document).ready(function(){
$('#search').keyup(
getResults($(this).val());
);
getResults(); // Call this intially with no value
});
在您的PHP更改中:
$sql = "SELECT * FROM pclisting WHERE device_id LIKE '%$search%' OR section LIKE '%$search%'";
至:
if (empty($_POST["search"])) {
$sql = "SELECT * FROM pclisting";
} else {
$sql = "SELECT * FROM pclisting WHERE device_id LIKE '%$search%' OR section LIKE '%$search%'";
}
另外,在mysql语句中使用$ search之前,您应该真正考虑清理它的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.