亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > AJAX > 正文

如何使用 jQuery(Ajax)/PHP/MySQL實現自動完成功能

2024-09-01 08:26:22
字體:
來源:轉載
供稿:網友

使用 jQuery(Ajax)/PHP/MySQL實現自動完成功能

JavaScript代碼

 

<script src="jquery-1.2.1.pack.js" type="text/javascript"></script>
<script type="text/javascript">

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);
(‘#suggestions’).hide();
}

</script>

 

JS的解釋:

好,從上面的代碼看到,我們需要連接到一個叫做rpc.php的文件,這個文件處理所有的操作。

lookup函數使用從文本輸入框中得到的單詞然后使用jQuery中Ajax的方法POST把它傳給rpc.php。

如果輸入字符 ‘inputString’是‘0’(Zero,譯注:在這里是指在搜索框中沒輸入任何內容),建議框就被隱藏,這也很人性化,你想,如果在搜索框中沒有輸入任何東西,你也不期望會出現個建議提示框。

如果輸入框中有內容,我們就得到了這個 ‘inputString’并傳遞給rpc.php頁面,然后jQuery 的.post()函數被使用,如下:

.post(url, [data], [callback])

‘callback’部分可以關聯一個函數,這個比較有意思,只有在數據(data)被加載成功的時候才會執行(譯注:此處為意譯,沒看懂原文:<).

如果返回的數據(data)不為空(也就是說,有東西要顯示),那就顯示搜索提示框并且使用返回的數據(data)來代替其中的html代碼。

就這么簡單!

PHP后臺程序(rpc.php):

如你所知(譯注:不好意思,看王小波就學會了這么個口頭禪),我的php后臺程序都叫做rpc.php(RPC指遠程過程調用),而沒用它實際執行的功能來命名,但是也還不錯了。

 

// PHP5 Implementation - uses MySQLi.
db = new mysqli(‘localhost’, ‘root’ ,”, ‘autoComplete’);
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代碼解釋

鑒于代碼中我已經加了很多注釋,在這里我就不再說的很詳細了。

一般情況下,需要接收這個 ‘QueryString’ 然后在其最后使用通配符產生一個查詢語句。

這意味著在這種情況下,每次敲進去一個字符都需要產生一個查詢語句,如果一直都這樣做的話,恐怕MYSQL會受不了。但是為了盡量的簡化這個過程,這種做法對一個規模較小的應用應該沒什么問題。

這段php代碼你需要在自己的系統中稍作修改,比如你需要更新‘query’到你自己的數據庫,需要看在哪里放你數據庫表的列名等等。

CSS樣式

我使用的是CSS3,天哪,它真的很好用,雖然在Firefox 或者Safari瀏覽器上會有功能限制。

 

<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代碼都很標準,沒什么需要特別指出的。

主文件HTML

 

<div>
<div>

Type your county (for the demo):
<input size="30" id="inputString" onkeyup="lookup(this.value);" type="text" />

</div> <div class="suggestionsBox" id="suggestions" style="display: none;">

<img src="upArrow.png" style="position: relative; top: -12px; left: 30px" alt="upArrow" />

<div class="suggestionList" id="autoSuggestionsList">

</div>

</div>

</div>

 

這是主文件的部分html代碼,你需要添加的就是一個輸入框,并且把 ‘onkeyup’ 函數設置為lookup(this.value)。另外,我建議你不要修改它的ID,如果你不想修改上面的Javascript代碼的話。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
午夜免费在线观看精品视频| 国产精品爱啪在线线免费观看| 在线成人激情视频| 国产精品网站大全| 高潮白浆女日韩av免费看| 久久九九全国免费精品观看| 日本aⅴ大伊香蕉精品视频| 国产成人精品一区二区三区| 欧美激情亚洲精品| 精品亚洲永久免费精品| 欧美日韩成人在线观看| 亚洲人成啪啪网站| 欧美成人sm免费视频| 国产精品视频在线播放| 亚洲福利视频网| 欧洲s码亚洲m码精品一区| 国产男女猛烈无遮挡91| 欧美激情性做爰免费视频| 国产一区二区三区高清在线观看| 日韩在线免费视频| 亚洲free性xxxx护士白浆| 日韩黄在线观看| 欧美黑人狂野猛交老妇| 色老头一区二区三区| 国产一区二区三区三区在线观看| 日韩国产精品一区| 色妞一区二区三区| 欧美成年人视频网站| 国产成人精品视频| 国产成人黄色av| 亚洲а∨天堂久久精品9966| 中文字幕av一区二区三区谷原希美| 国产精品aaa| 国产精品久久久久av免费| 久久久久久久久亚洲| 日韩a**中文字幕| 富二代精品短视频| 日韩美女免费视频| 海角国产乱辈乱精品视频| 在线播放国产一区二区三区| 久久久黄色av| 日韩精品在线免费播放| 久久久久久久亚洲精品| 国产91精品最新在线播放| 国产成人欧美在线观看| 日本精品久久电影| 国产精品久久久久久久av大片| 日韩大陆欧美高清视频区| 国产69精品久久久久99| 国产+人+亚洲| 久久香蕉频线观| 亚洲va久久久噜噜噜| 久久久国产精品亚洲一区| 欧美成人亚洲成人日韩成人| 91精品视频在线看| 日韩欧美亚洲一二三区| 亚洲黄色www| 91精品国产91久久久久久久久| 亚洲天堂免费观看| 97欧美精品一区二区三区| 欧美大片欧美激情性色a∨久久| 38少妇精品导航| 亚洲国产高清高潮精品美女| 国产成人精品网站| 欧美一级高清免费| 日韩av在线影院| 日本国产高清不卡| 欧美激情按摩在线| 亚洲乱码av中文一区二区| 欧美国产日韩一区| www.亚洲一二| 亚洲欧美在线一区二区| 国内精久久久久久久久久人| 欧美乱大交xxxxx另类电影| 国产女同一区二区| 欧美俄罗斯乱妇| 2019最新中文字幕| 97超级碰碰人国产在线观看| 国产成人鲁鲁免费视频a| 欧美激情乱人伦一区| 2019中文字幕全在线观看| 国产精品无码专区在线观看| 欧美国产精品人人做人人爱| 欧美极度另类性三渗透| 亚洲人免费视频| 亚洲人成亚洲人成在线观看| 555www成人网| 中文字幕亚洲图片| 亚洲韩国欧洲国产日产av| 国产精品久久久久久av下载红粉| 影音先锋欧美在线资源| 亚洲xxxxx性| 精品精品国产国产自在线| 欧美理论电影网| 久久精品色欧美aⅴ一区二区| 色噜噜国产精品视频一区二区| 亚洲国产高清自拍| 中文字幕在线看视频国产欧美在线看完整| 91精品综合视频| 中文字幕日韩精品在线| 国产精品久久久久7777婷婷| 日韩免费在线播放| 国产精品视频内| 国产精品久久久久久av| 亚洲精品999| 国产欧美最新羞羞视频在线观看| 2019av中文字幕| 欧美激情免费看| 欧美一级高清免费播放| 日韩暖暖在线视频| 亚洲欧美综合v| 狠狠久久五月精品中文字幕| 国产综合福利在线| 欧美激情网友自拍| 亚洲电影免费观看高清完整版在线| 亚洲综合第一页| 日韩欧美有码在线| 欧美日韩在线另类| 日本免费一区二区三区视频观看| 国产精品久久久久久久久久久久久| 国内揄拍国内精品| 亚洲欧美日韩视频一区| 国产一区二区美女视频| 91九色单男在线观看| 精品亚洲一区二区三区四区五区| 久久久免费在线观看| 国产精品色午夜在线观看| 日韩暖暖在线视频| 午夜精品视频在线| 色偷偷91综合久久噜噜| 国产亚洲激情视频在线| 色狠狠av一区二区三区香蕉蜜桃| 日韩中文综合网| 久久香蕉频线观| 91精品免费久久久久久久久| 97精品一区二区三区| 精品国产精品自拍| 91精品啪在线观看麻豆免费| 欧美日韩aaaa| 国产91色在线|免| 欧美成人午夜激情| 日本久久久久久久| 亚洲free性xxxx护士白浆| 一本色道久久88综合亚洲精品ⅰ| 97超级碰碰碰久久久| 久久精品在线播放| 国产精品视频久| 久久久www成人免费精品| 色综合男人天堂| 亚洲区bt下载| 国产成人亚洲综合| 日本久久中文字幕| 欧美贵妇videos办公室| 一区二区三区四区视频| 日本高清不卡的在线| 国产欧美欧洲在线观看| 欧美在线一级va免费观看| 91色中文字幕| 欧美激情二区三区| 亚洲美女激情视频| 色黄久久久久久| 中文字幕欧美视频在线| 伊人av综合网| 久久亚洲私人国产精品va|