ホームページ >バックエンド開発 >PHPチュートリアル >PHPで検索ボックスを実装する
私が作成した Web ページの効果は次のとおりです:
検索ボックスにキーワードを入力した検索結果を 2 ページ目に表示するにはどうすればよいですか?
私のコードは次のとおりです:
これは 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="position: relative; top: -12px; left: 30px;" 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 はどこですか