PHP后臺(tái)程序(rpc.php):
如你所知(譯注:不好意思,看王小波就學(xué)會(huì)了這么個(gè)口頭禪),我的php后臺(tái)程序都叫做rpc.php(RPC指遠(yuǎn)程過(guò)程調(diào)用),而沒(méi)用它實(shí)際執(zhí)行的功能來(lái)命名,但是也還不錯(cuò)了。
// PHP5 Implementation - uses MySQLi. $db = new mysqli(‘localhost’, ‘root’ ,”, ‘a(chǎn)utoComplete’); 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 = $_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’; $query = $db->query("SELECT value FROM countries WHERE value 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. echo ‘<li onclick="fill(’‘.$result->value.’‘);">’.$result->value.‘</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!’; } }
?>
PHP代碼解釋:
鑒于代碼中我已經(jīng)加了很多注釋,在這里我就不再說(shuō)的很詳細(xì)了。
一般情況下,需要接收這個(gè) ‘QueryString’ 然后在其最后使用通配符產(chǎn)生一個(gè)查詢語(yǔ)句。
這意味著在這種情況下,每次敲進(jìn)去一個(gè)字符都需要產(chǎn)生一個(gè)查詢語(yǔ)句,如果一直都這樣做的話,恐怕MYSQL會(huì)受不了。但是為了盡量的簡(jiǎn)化這個(gè)過(guò)程,這種做法對(duì)一個(gè)規(guī)模較小的應(yīng)用應(yīng)該沒(méi)什么問(wèn)題。
這段php代碼你需要在自己的系統(tǒng)中稍作修改,比如你需要更新‘$query’到你自己的數(shù)據(jù)庫(kù),需要看在哪里放你數(shù)據(jù)庫(kù)表的列名等等。
CSS樣式:
我使用的是CSS3,天哪,它真的很好用,雖然在Firefox 或者Safari瀏覽器上會(huì)有功能限制。
<style type="text/css"> .suggestionsBox { position: relative; left: 30px; margin: 10px 0px 0px 0px; width: 200px; background-color: #212427; -moz-border-radius: 7px; -webkit-border-radius: 7px; border: 2px solid #000; color: #fff; }
.suggestionList { margin: 0px; padding: 0px; }
.suggestionList li { margin: 0px 0px 3px 0px; padding: 3px; cursor: pointer; }
.suggestionList li:hover { background-color: #659CD8; } </style>
CSS代碼都很標(biāo)準(zhǔn),沒(méi)什么需要特別指出的。
出處:譯言
責(zé)任編輯:bluehearts
上一頁(yè) 搜索自動(dòng)提示功能的實(shí)現(xiàn) [1] 下一頁(yè) 搜索自動(dòng)提示功能的實(shí)現(xiàn) [3]
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|