首页 >后端开发 >php教程 >php中实现搜索框

php中实现搜索框

WBOY
WBOY原创
2016-06-23 14:19:284526浏览

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

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

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn