繁体   English   中英

如何在使用PHP和SQL Server进行Ajax搜索之前从表中查看默认数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM