Rumah hujung hadapan web tutorial js javascript搜索自动提示功能的实现_javascript技巧

javascript搜索自动提示功能的实现_javascript技巧

May 16, 2016 pm 07:04 PM
javascript cari Auto gesaan

使用 jQuery(Ajax)/PHP/MySQL实现自动完成功我觉得我有必要写这个教程,因为曾经见到的大部分关于自动完成的应用程序都只是给你一个程序源码包,然后告诉你怎么使用,而不是告诉你它是如何工作的以及为什么这样做。

使用 jQuery(Ajax)/PHP/MySQL实现自动完成功能
一如往常,demo和源码的zip包在文章最后,慢慢欣赏吧!

我觉得我有必要写这个教程,因为曾经见到的大部分关于自动完成的应用程序都只是给你一个程序源码包,然后告诉你怎么使用,而不是告诉你它是如何工作的以及为什么这样做。而知道这些可以让你对这个插件可以进一步的按自己的需求定制(关于这一点我在我的blog里写过不少关于其他应用的文章)。
javascript搜索自动提示功能的实现_javascript技巧
好,我们现在开始。

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&#39;).hide();  
    } else {  
        $.post("rpc.php", {queryString: ""+inputString+""}, function(data){  
            if(data.length >0) {  
                $(‘#suggestions&#39;).show();  
                $(‘#autoSuggestionsList&#39;).html(data);  
            }  
        });  
    }  
} // lookup  
function fill(thisValue) {  
    $(‘#inputString&#39;).val(thisValue);  
   $(‘#suggestions&#39;).hide();  
}  
</script>
Salin selepas log masuk



JS的解释:

好,从上面的代码看到,我们需要连接到一个叫做rpc.php的文件,这个文件处理所有的操作。

lookup函数使用从文本输入框中得到的单词然后使用jQuery中Ajax的方法POST把它传给rpc.php。

如果输入字符 ‘inputString'是‘0'(Zero,译注:在这里是指在搜索框中没输入任何内容),建议框就被隐藏,这也很人性化,你想,如果在搜索框中没有输入任何东西,你也不期望会出现个建议提示框。

如果输入框中有内容,我们就得到了这个 ‘inputString'并传递给rpc.php页面,然后jQuery 的$.post()函数被使用,如下:

$.post(url, [data], [callback])
Salin selepas log masuk


‘callback'部分可以关联一个函数,这个比较有意思,只有在数据(data)被加载成功的时候才会执行(译注:此处为意译,没看懂原文:<).

如果返回的数据(data)不为空(也就是说,有东西要显示),那就显示搜索提示框并且使用返回的数据(data)来代替其中的html代码。

就这么简单!

PHP后台程序(rpc.php):

如你所知(译注:不好意思,看王小波就学会了这么个口头禅),我的php后台程序都叫做rpc.php(RPC指远程过程调用),而没用它实际执行的功能来命名,但是也还不错了。
代码如下:

// PHP5 Implementation - uses MySQLi.   
$db = new mysqli(‘localhost&#39;, ‘root&#39; ,”, ‘autoComplete&#39;);  
if(!$db) {  
    // Show error if we cannot connect.  
    echo ‘ERROR: Could not connect to the database.&#39;;  
} else {  
    // Is there a posted query string?  
    if(isset($_POST[‘queryString&#39;])) {  
        $queryString = $_POST[‘queryString&#39;];  
        // Is the string length greater than 0?  
        if(strlen($queryString) >0) {  
        // Run the query: We use LIKE ‘$queryString%&#39;  
    // The percentage sign is a wild-card, in my example of countries it works like this…  
        // $queryString = ‘Uni&#39;;  
      // Returned data = ‘United States, United Kindom&#39;;   
  $query = $db->query("SELECT value FROM countries WHERE value LIKE ‘$queryString%&#39; 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(&#39;‘.$result->value.&#39;‘);">&#39;.$result->value.‘</li>&#39;;  
            }  
        } else {  
            echo ‘ERROR: There was a problem with the query.&#39;;  
        }  
    } else {  
        // Dont do anything.  
    } // There is a queryString.  
} else {  
    echo ‘There should be no direct access to this script!&#39;;  
}  
}  
?>
Salin selepas log masuk


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>
Salin selepas log masuk

CSS代码都很标准,没什么需要特别指出的。

主文件HTML:


<p>  
       <p> 
      Type your county (for the demo): 
<input size="30" id="inputString" onkeyup="lookup(this.value);" type="text" /> 
    </p>      <p class="suggestionsBox" id="suggestions" style="display: none;"> 
      <img src="upArrow.png" style="position: relative; top: -12px; left: 30px" alt="upArrow" /> 
      <p class="suggestionList" id="autoSuggestionsList"> 
</p> 
    </p> 
</p>
Salin selepas log masuk

这是主文件的部分html代码,你需要添加的就是一个输入框,并且把 ‘onkeyup' 函数设置为lookup(this.value)。另外,我建议你不要修改它的ID,如果你不想修改上面的Javascript代码的话。

截图:

我想你应该会想要看看最后的效果是什么样子,OK。

javascript搜索自动提示功能的实现_javascript技巧

还有,

javascript搜索自动提示功能的实现_javascript技巧

最后就是有用的链接了,我想你应该期待很久了。
打包文件

 以上就是javascript搜索自动提示功能的实现_javascript技巧的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk mencari pengguna di Xianyu Bagaimana untuk mencari pengguna di Xianyu Feb 24, 2024 am 11:25 AM

Bagaimanakah Xianyu mencari pengguna? Dalam perisian Xianyu, kami boleh mencari secara langsung pengguna yang kami ingin berkomunikasi dalam perisian. Tetapi saya tidak tahu cara mencari pengguna. Lihat sahaja di kalangan pengguna selepas mencari. Seterusnya ialah pengenalan yang editor bawa kepada pengguna tentang cara mencari pengguna Jika anda berminat, datang dan lihat! Bagaimana untuk mencari pengguna di Xianyu Jawapan: Lihat butiran di kalangan pengguna yang dicari Pengenalan: 1. Masukkan perisian dan klik pada kotak carian. 2. Masukkan nama pengguna dan klik Cari. 3. Kemudian pilih [Pengguna] di bawah kotak carian untuk mencari pengguna yang sepadan.

Cara menggunakan carian lanjutan Baidu Cara menggunakan carian lanjutan Baidu Feb 22, 2024 am 11:09 AM

Cara menggunakan Carian Terperinci Baidu Enjin carian Baidu kini merupakan salah satu enjin carian yang paling biasa digunakan di China. Ia menyediakan pelbagai fungsi carian, salah satunya ialah carian lanjutan. Carian lanjutan boleh membantu pengguna mencari maklumat yang mereka perlukan dengan lebih tepat dan meningkatkan kecekapan carian. Jadi, bagaimana untuk menggunakan carian lanjutan Baidu? Langkah pertama ialah membuka halaman utama enjin carian Baidu. Pertama, kita perlu membuka laman web rasmi Baidu, iaitu www.baidu.com. Ini adalah pintu masuk ke carian Baidu. Dalam langkah kedua, klik butang Carian Terperinci. Di sebelah kanan kotak carian Baidu, terdapat

Bagaimana untuk melaksanakan sistem pengecaman pertuturan dalam talian menggunakan WebSocket dan JavaScript Bagaimana untuk melaksanakan sistem pengecaman pertuturan dalam talian menggunakan WebSocket dan JavaScript Dec 17, 2023 pm 02:54 PM

Cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem pengecaman pertuturan dalam talian Pengenalan: Dengan perkembangan teknologi yang berterusan, teknologi pengecaman pertuturan telah menjadi bahagian penting dalam bidang kecerdasan buatan. Sistem pengecaman pertuturan dalam talian berdasarkan WebSocket dan JavaScript mempunyai ciri kependaman rendah, masa nyata dan platform merentas, dan telah menjadi penyelesaian yang digunakan secara meluas. Artikel ini akan memperkenalkan cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem pengecaman pertuturan dalam talian.

WebSocket dan JavaScript: teknologi utama untuk melaksanakan sistem pemantauan masa nyata WebSocket dan JavaScript: teknologi utama untuk melaksanakan sistem pemantauan masa nyata Dec 17, 2023 pm 05:30 PM

WebSocket dan JavaScript: Teknologi utama untuk merealisasikan sistem pemantauan masa nyata Pengenalan: Dengan perkembangan pesat teknologi Internet, sistem pemantauan masa nyata telah digunakan secara meluas dalam pelbagai bidang. Salah satu teknologi utama untuk mencapai pemantauan masa nyata ialah gabungan WebSocket dan JavaScript. Artikel ini akan memperkenalkan aplikasi WebSocket dan JavaScript dalam sistem pemantauan masa nyata, memberikan contoh kod dan menerangkan prinsip pelaksanaannya secara terperinci. 1. Teknologi WebSocket

Jadual WPS tidak dapat mencari data yang anda cari, sila semak lokasi pilihan carian Jadual WPS tidak dapat mencari data yang anda cari, sila semak lokasi pilihan carian Mar 19, 2024 pm 10:13 PM

Dalam era yang dikuasai oleh kecerdasan, perisian pejabat juga telah menjadi popular, dan borang Wps diterima pakai oleh majoriti pekerja pejabat kerana fleksibiliti mereka. Di tempat kerja, kita dikehendaki bukan sahaja untuk belajar membuat borang yang mudah dan memasukkan teks, tetapi juga untuk menguasai lebih banyak kemahiran operasi untuk menyelesaikan tugasan dalam kerja sebenar Laporan dengan data dan menggunakan borang adalah lebih mudah, jelas dan tepat. Pelajaran yang kami bawa kepada anda hari ini ialah: Jadual WPS tidak dapat mencari data yang anda cari. Mengapa sila semak lokasi pilihan carian? 1. Mula-mula pilih jadual Excel dan klik dua kali untuk membukanya. Kemudian dalam antara muka ini, pilih semua sel. 2. Kemudian dalam antara muka ini, klik pilihan "Edit" dalam "Fail" dalam bar alat atas. 3. Kedua, dalam antara muka ini, klik "

Bagaimana untuk mencari kedai di Taobao mudah alih Bagaimana untuk mencari nama kedai Bagaimana untuk mencari kedai di Taobao mudah alih Bagaimana untuk mencari nama kedai Mar 13, 2024 am 11:00 AM

Perisian aplikasi Taobao mudah alih menyediakan banyak produk yang bagus Anda boleh membelinya pada bila-bila masa dan di mana-mana sahaja, dan semuanya adalah tulen. Anda boleh mencari dan membeli secara bebas mengikut kehendak anda. Bahagian produk dalam kategori yang berbeza semuanya terbuka pengguna menggunakannya untuk kali pertama Jika anda tidak tahu bagaimana untuk mencari produk, sudah tentu anda hanya perlu memasukkan kata kunci dalam bar carian untuk mencari semua hasil produk Anda tidak boleh berhenti membeli-belah editor akan menyediakan kaedah dalam talian terperinci untuk pengguna Taobao mudah alih mencari nama kedai. 1. Mula-mula buka aplikasi Taobao pada telefon bimbit anda,

JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap Dec 17, 2023 pm 05:13 PM

JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap Pengenalan: Hari ini, ketepatan ramalan cuaca sangat penting kepada kehidupan harian dan membuat keputusan. Apabila teknologi berkembang, kami boleh menyediakan ramalan cuaca yang lebih tepat dan boleh dipercayai dengan mendapatkan data cuaca dalam masa nyata. Dalam artikel ini, kita akan mempelajari cara menggunakan teknologi JavaScript dan WebSocket untuk membina sistem ramalan cuaca masa nyata yang cekap. Artikel ini akan menunjukkan proses pelaksanaan melalui contoh kod tertentu. Kami

Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP Jan 05, 2024 pm 06:08 PM

Tutorial JavaScript: Bagaimana untuk mendapatkan kod status HTTP, contoh kod khusus diperlukan: Dalam pembangunan web, interaksi data dengan pelayan sering terlibat. Apabila berkomunikasi dengan pelayan, kami selalunya perlu mendapatkan kod status HTTP yang dikembalikan untuk menentukan sama ada operasi itu berjaya dan melaksanakan pemprosesan yang sepadan berdasarkan kod status yang berbeza. Artikel ini akan mengajar anda cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan menyediakan beberapa contoh kod praktikal. Menggunakan XMLHttpRequest

See all articles