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

首頁 > 開發 > JS > 正文

PHP+JS實現搜索自動提示

2024-09-06 12:40:50
字體:
來源:轉載
供稿:網友

一如往常,demo和源碼的zip包在文章最后,慢慢欣賞吧!

我覺得我有必要寫這個教程,因為曾經見到的大部分關于自動完成的應用程序都只是給你一個程序源碼包,然后告訴你怎么使用,而不是告訴你它是如何工作的以及為什么這樣做。而知道這些可以讓你對這個插件可以進一步的按自己的需求定制(關于這一點我在我的blog里寫過不少關于其他應用的文章)。

好,我們現在開始。

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

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

截圖

我想你應該會想要看看最后的效果是什么樣子,ok。

還有,

最后就是有用的鏈接了,我想你應該期待很久了。

演示: auto complete demo
源文件:autocomplete source zip

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av快播网址| 欧美性受xxx| 久久久亚洲福利精品午夜| 日韩免费电影在线观看| 91久久在线观看| 欧美刺激性大交免费视频| 国产日韩在线精品av| 91免费综合在线| 精品国产依人香蕉在线精品| 欧美日韩一区二区在线| 欧美理论电影网| 九九热精品视频| 一区二区三区美女xx视频| 亚洲黄一区二区| 91精品国产色综合久久不卡98| 欧美午夜宅男影院在线观看| 91免费看视频.| 欧美大片在线看免费观看| 成人av.网址在线网站| 欧美性受xxxx黑人猛交| 国产精品中文字幕在线观看| 亚洲系列中文字幕| 亚洲跨种族黑人xxx| 亚洲美女在线观看| 国产日韩在线精品av| 性色av一区二区三区在线观看| 午夜精品一区二区三区在线视| 国产一区玩具在线观看| 国产精品扒开腿做爽爽爽视频| 按摩亚洲人久久| 日韩精品在线视频| 在线视频欧美日韩精品| 日韩暖暖在线视频| 欧美一级片在线播放| 国产经典一区二区| 国产视频久久网| 精品动漫一区二区| 日韩视频一区在线| 国产精品视频久久久| 性色av一区二区三区红粉影视| 国产成人短视频| 3344国产精品免费看| 91欧美视频网站| 中文字幕亚洲综合久久| 国产精品美女免费看| 欧美激情啊啊啊| 国产成人精品日本亚洲专区61| 在线播放亚洲激情| 成人激情视频在线播放| 久久精品视频va| 亚洲激情视频网站| 日韩在线播放一区| 亚洲成在人线av| 91伊人影院在线播放| 欧美激情女人20p| 精品亚洲一区二区三区在线观看| 国产美女久久精品香蕉69| 欧美性猛交99久久久久99按摩| 亚洲国产精品成人va在线观看| 亚洲欧洲一区二区三区久久| 91久久国产精品| 蜜臀久久99精品久久久久久宅男| 国产精品亚发布| 成人在线观看视频网站| 91精品久久久久久久| 狠狠做深爱婷婷久久综合一区| 国产精品日韩在线| 91免费国产视频| 欧美激情一区二区三区高清视频| 国产精品免费久久久久影院| 欧美精品国产精品日韩精品| 欧美黑人又粗大| 欧美激情免费在线| 欧美激情中文网| 2019最新中文字幕| 亚洲最新在线视频| 日韩电影网在线| 91天堂在线视频| xxxxx成人.com| 成人国产精品一区| 91精品国产自产在线老师啪| 亚洲免费一在线| 亚洲大胆人体在线| 国产一区视频在线播放| 久久国产精品久久精品| 97精品欧美一区二区三区| 欧洲成人性视频| 国产精品成人观看视频国产奇米| 欧美午夜激情视频| 97在线免费观看视频| 国产香蕉精品视频一区二区三区| 国产日韩在线免费| 欧美在线一级va免费观看| 欧美在线性爱视频| 日韩国产欧美精品一区二区三区| 欧美专区福利在线| 日韩精品在线免费观看视频| 国产精品91久久久| 久久久久中文字幕2018| 在线精品高清中文字幕| 欧美小视频在线观看| 色婷婷成人综合| 欧美放荡办公室videos4k| 欧美性高跟鞋xxxxhd| 日本成人在线视频网址| 欧美自拍视频在线观看| 国产精品久久久亚洲| 久久国产精品99国产精| 亚洲一二在线观看| 992tv在线成人免费观看| 亚洲va国产va天堂va久久| 日韩在线中文字| 欧美黑人狂野猛交老妇| 精品久久久久久亚洲精品| 欧美激情一区二区三区久久久| 日韩av毛片网| 久久综合国产精品台湾中文娱乐网| 欧美自拍视频在线| 久久久久久亚洲精品中文字幕| 欧美乱大交xxxxx另类电影| 亚洲一区二区福利| 中文字幕免费国产精品| 性欧美在线看片a免费观看| 国产欧美精品日韩| 国产精品揄拍500视频| 国产日韩欧美夫妻视频在线观看| 另类少妇人与禽zozz0性伦| 成人动漫网站在线观看| 国产精品一久久香蕉国产线看观看| 久久久国产一区二区| 久久久久久久久久久免费精品| 国产精品欧美亚洲777777| 成人妇女免费播放久久久| 在线播放国产精品| 欧美夫妻性视频| 久久久久女教师免费一区| 欧美一级大片在线观看| 亚洲精品之草原avav久久| 国产精品旅馆在线| 国产精品女人久久久久久| 亚洲一区二区三区在线免费观看| 北条麻妃99精品青青久久| 久久久www成人免费精品张筱雨| 91精品国产自产在线老师啪| 97在线视频精品| 国产精品久久久久久五月尺| 中文字幕综合在线| 亚洲另类xxxx| 久久久久久久香蕉网| 亚洲国产精品高清久久久| 国产成人久久久| 亚洲大胆人体在线| 91国产一区在线| 日韩中文视频免费在线观看| 成人激情视频在线观看| 欧美成年人视频网站| 欧美性资源免费| 中文字幕亚洲欧美日韩在线不卡| 深夜福利亚洲导航| 日韩美女免费视频| 在线精品高清中文字幕| 最近2019年好看中文字幕视频| 欧美有码在线观看视频| 一区二区在线免费视频|