使用 jQuery(Ajax)/PHP/MySQL實(shí)現(xiàn)自動(dòng)完成功能
一如往常,demo和源碼的zip包在文章最后,慢慢欣賞吧!
我覺(jué)得我有必要寫這個(gè)教程,因?yàn)樵?jīng)見到的大部分關(guān)于自動(dòng)完成的應(yīng)用程序都只是給你一個(gè)程序源碼包,然后告訴你怎么使用,而不是告訴你它是如何工作的以及為什么這樣做。而知道這些可以讓你對(duì)這個(gè)插件可以進(jìn)一步的按自己的需求定制(關(guān)于這一點(diǎn)我在我的blog里寫過(guò)不少關(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,譯注:在這里是指在搜索框中沒(méi)輸入任何內(nèi)容),建議框就被隱藏,這也很人性化,你想,如果在搜索框中沒(mé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í)行(譯注:此處為意譯,沒(méi)看懂原文:<).
如果返回的數(shù)據(jù)(data)不為空(也就是說(shuō),有東西要顯示),那就顯示搜索提示框并且使用返回的數(shù)據(jù)(data)來(lái)代替其中的html代碼。
就這么簡(jiǎn)單!
出處:譯言
責(zé)任編輯:bluehearts
上一頁(yè) 下一頁(yè) 搜索自動(dòng)提示功能的實(shí)現(xiàn) [2]
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|