Home >Backend Development >PHP Tutorial >php中实现搜索框

php中实现搜索框

WBOY
WBOYOriginal
2016-06-23 14:19:284530browse

我做出来的网页效果是这样的:

怎样才能更具搜索框中的关键字在第二个页面显示搜索结果呢?

我的代码如下:
这是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>

这是rpc.php的文件:
<?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  在哪呢

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn