javascript搜索自動(dòng)提示功能的實(shí)現(xiàn)第1/3頁(yè)
更新時(shí)間:2008年06月04日 23:08:08 作者:
使用 jQuery(Ajax)/PHP/MySQL實(shí)現(xiàn)自動(dòng)完成功我覺得我有必要寫這個(gè)教程,因?yàn)樵?jīng)見到的大部分關(guān)于自動(dòng)完成的應(yīng)用程序都只是給你一個(gè)程序源碼包,然后告訴你怎么使用,而不是告訴你它是如何工作的以及為什么這樣做。
使用 jQuery(Ajax)/PHP/MySQL實(shí)現(xiàn)自動(dòng)完成功能
一如往常,demo和源碼的zip包在文章最后,慢慢欣賞吧!
我覺得我有必要寫這個(gè)教程,因?yàn)樵?jīng)見到的大部分關(guān)于自動(dòng)完成的應(yīng)用程序都只是給你一個(gè)程序源碼包,然后告訴你怎么使用,而不是告訴你它是如何工作的以及為什么這樣做。而知道這些可以讓你對(duì)這個(gè)插件可以進(jìn)一步的按自己的需求定制(關(guān)于這一點(diǎn)我在我的blog里寫過不少關(guān)于其他應(yīng)用的文章)。

好,我們現(xiàn)在開始。
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的解釋:
好,從上面的代碼看到,我們需要連接到一個(gè)叫做rpc.php的文件,這個(gè)文件處理所有的操作。
lookup函數(shù)使用從文本輸入框中得到的單詞然后使用jQuery中Ajax的方法POST把它傳給rpc.php。
如果輸入字符 ‘inputString'是‘0'(Zero,譯注:在這里是指在搜索框中沒輸入任何內(nèi)容),建議框就被隱藏,這也很人性化,你想,如果在搜索框中沒有輸入任何東西,你也不期望會(huì)出現(xiàn)個(gè)建議提示框。
如果輸入框中有內(nèi)容,我們就得到了這個(gè) ‘inputString'并傳遞給rpc.php頁(yè)面,然后jQuery 的$.post()函數(shù)被使用,如下:
$.post(url, [data], [callback])
‘callback'部分可以關(guān)聯(lián)一個(gè)函數(shù),這個(gè)比較有意思,只有在數(shù)據(jù)(data)被加載成功的時(shí)候才會(huì)執(zhí)行(譯注:此處為意譯,沒看懂原文:<).
如果返回的數(shù)據(jù)(data)不為空(也就是說,有東西要顯示),那就顯示搜索提示框并且使用返回的數(shù)據(jù)(data)來代替其中的html代碼。
就這么簡(jiǎn)單!
一如往常,demo和源碼的zip包在文章最后,慢慢欣賞吧!
我覺得我有必要寫這個(gè)教程,因?yàn)樵?jīng)見到的大部分關(guān)于自動(dòng)完成的應(yīng)用程序都只是給你一個(gè)程序源碼包,然后告訴你怎么使用,而不是告訴你它是如何工作的以及為什么這樣做。而知道這些可以讓你對(duì)這個(gè)插件可以進(jìn)一步的按自己的需求定制(關(guān)于這一點(diǎn)我在我的blog里寫過不少關(guān)于其他應(yīng)用的文章)。

好,我們現(xiàn)在開始。
JavaScript代碼:
復(fù)制代碼 代碼如下:
<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的解釋:
好,從上面的代碼看到,我們需要連接到一個(gè)叫做rpc.php的文件,這個(gè)文件處理所有的操作。
lookup函數(shù)使用從文本輸入框中得到的單詞然后使用jQuery中Ajax的方法POST把它傳給rpc.php。
如果輸入字符 ‘inputString'是‘0'(Zero,譯注:在這里是指在搜索框中沒輸入任何內(nèi)容),建議框就被隱藏,這也很人性化,你想,如果在搜索框中沒有輸入任何東西,你也不期望會(huì)出現(xiàn)個(gè)建議提示框。
如果輸入框中有內(nèi)容,我們就得到了這個(gè) ‘inputString'并傳遞給rpc.php頁(yè)面,然后jQuery 的$.post()函數(shù)被使用,如下:
$.post(url, [data], [callback])
‘callback'部分可以關(guān)聯(lián)一個(gè)函數(shù),這個(gè)比較有意思,只有在數(shù)據(jù)(data)被加載成功的時(shí)候才會(huì)執(zhí)行(譯注:此處為意譯,沒看懂原文:<).
如果返回的數(shù)據(jù)(data)不為空(也就是說,有東西要顯示),那就顯示搜索提示框并且使用返回的數(shù)據(jù)(data)來代替其中的html代碼。
就這么簡(jiǎn)單!
您可能感興趣的文章:
- JavaScript正則方法replace實(shí)現(xiàn)搜索關(guān)鍵字高亮顯示
- JavaScript實(shí)現(xiàn)的搜索及高亮顯示功能示例
- Angularjs實(shí)現(xiàn)搜索關(guān)鍵字高亮顯示效果
- 用JS將搜索的關(guān)鍵字高亮顯示實(shí)現(xiàn)代碼
- JS仿百度搜索自動(dòng)提示框匹配查詢功能
- js實(shí)現(xiàn)搜索框關(guān)鍵字智能匹配代碼
- JS實(shí)現(xiàn)表格數(shù)據(jù)各種搜索功能的方法
- 可以用來搜索當(dāng)前頁(yè)面內(nèi)容的js代碼
- javascript 關(guān)鍵字高亮顯示實(shí)現(xiàn)代碼
- JS實(shí)現(xiàn)靜態(tài)頁(yè)面搜索并高亮顯示功能完整示例
相關(guān)文章
基于BootStrap實(shí)現(xiàn)簡(jiǎn)潔注冊(cè)界面
這篇文章主要介紹了基于BootStrap實(shí)現(xiàn)簡(jiǎn)潔注冊(cè)界面,需要的朋友可以參考下2017-07-07Vue3基于countUp.js實(shí)現(xiàn)數(shù)字滾動(dòng)的插件
本文主要介紹了Vue3基于countUp.js實(shí)現(xiàn)數(shù)字滾動(dòng)的插件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04js實(shí)現(xiàn)簡(jiǎn)潔的滑動(dòng)門菜單(選項(xiàng)卡)效果代碼
這篇文章主要介紹了js實(shí)現(xiàn)簡(jiǎn)潔的滑動(dòng)門菜單(選項(xiàng)卡)效果代碼,涉及javascript鼠標(biāo)事件操作頁(yè)面元素樣式切換的實(shí)現(xiàn)技巧,簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-09-09JS實(shí)現(xiàn)統(tǒng)計(jì)字符串中字符出現(xiàn)個(gè)數(shù)及最大個(gè)數(shù)功能示例
這篇文章主要介紹了JS實(shí)現(xiàn)統(tǒng)計(jì)字符串中字符出現(xiàn)個(gè)數(shù)及最大個(gè)數(shù)功能,結(jié)合實(shí)例形式分析了javascript字符串遍歷、統(tǒng)計(jì)相關(guān)操作技巧,需要的朋友可以參考下2018-06-06JS實(shí)現(xiàn)圖片高亮展示效果實(shí)例
這篇文章主要介紹了JS實(shí)現(xiàn)圖片高亮展示效果的方法,實(shí)例分析了JavaScript響應(yīng)鼠標(biāo)事件動(dòng)態(tài)操作頁(yè)面元素樣式的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11textarea不能通過maxlength屬性來限制字?jǐn)?shù)的解決方法
textarea稱文本域,又稱文本區(qū),其不能通過maxlength屬性來限制字?jǐn)?shù),為此必須尋求其他方法來加以限制以達(dá)到預(yù)設(shè)的需求2014-09-09