Home >Backend Development >PHP Tutorial >php中实现搜索框
我做出来的网页效果是这样的:
怎样才能更具搜索框中的关键字在第二个页面显示搜索结果呢?
我的代码如下:
这是html的代码:
<form method="post" action="result.php" class="search"><input type="text" size="30" id="inputString" onkeyup="lookup(this.value);" onblur="fill();" /><input type="submit" value="搜索" id="send" /><div class="suggestionsBox" id="suggestions" style="display: none;"> <img src="../images/upArrow.png" style="max-width:90%" alt="upArrow" /> <div class="suggestionList" id="autoSuggestionsList"> </div></form><scripit>function lookup(inputString) { if(inputString.length == 0) { // Hide the suggestion box. $('#suggestions').hide(); } else { $.post("rpc.php", {queryString: ""+inputString+""}, function(data){ if(data.length >0) { $('#suggestions').show(); $('#autoSuggestionsList').html(data); } }); } } // lookup function fill(thisValue) { $('#inputString').val(thisValue); setTimeout("$('#suggestions').hide();", 200); }</script>
<?phprequire_once 'db_fns.php';header("Content-type: text/html; charset=gb2312");$db = db_connect();if(!$db) { // Show error if we cannot connect. echo 'ERROR: Could not connect to the database.';} else { // Is there a posted query string? if(isset($_POST['queryString'])) { $queryString = $db->real_escape_string($_POST['queryString']); // Is the string length greater than 0? if(strlen($queryString) >0) { // Run the query: We use LIKE '$queryString%' // The percentage sign is a wild-card, in my example of countries it works like this... // $queryString = 'Uni'; // Returned data = 'United States, United Kindom'; // YOU NEED TO ALTER THE QUERY TO MATCH YOUR DATABASE. // eg: SELECT yourColumnName FROM yourTable WHERE yourColumnName LIKE '$queryString%' LIMIT 10 $query = $db->query("SELECT * FROM bbstopic WHERE title LIKE '%$queryString%' LIMIT 10"); if($query) { // While there are results loop through them - fetching an Object (i like PHP5 btw!). while ($result = $query ->fetch_object()) { // Format the results, im using <li> for the list, you can change it. // The onClick function fills the textbox with the result. // YOU MUST CHANGE: $result->value to $result->your_colum echo '<li onClick="fill(\''.$result->title.'\');">'.$result->title.'</li>'; } } else { echo 'ERROR: There was a problem with the query.'; } } else { // Dont do anything. } // There is a queryString. } else { echo 'There should be no direct access to this script!'; }}?>
你可以使用jquery的一个控件:autocomplete 。
兼容性好,完全可以满足你的需求。
db_fns.php 在哪呢