Ajax技術(shù)實(shí)踐之完成Ajax自動(dòng)完成功能_AJAX教程
推薦:我的第一個(gè)AJAX程序Author:zfive5(zhaozidong)Email :[email protected] 禮拜五下午公司網(wǎng)站維護(hù)的同事問(wèn)我怎樣實(shí)現(xiàn)一個(gè)功能,一個(gè)提交頁(yè)上有兩個(gè)select,第二個(gè)select根據(jù)第一個(gè)select變,我的第一念頭就
近日學(xué)習(xí)了一下AJAX,照做了幾個(gè)例子,感覺比較新奇。
第一個(gè)就是自動(dòng)完成的功能即Autocomplete,具體的例子可以在這里看: http://www.b2c-battery.co.uk
在Search框內(nèi)輸入一個(gè)產(chǎn)品型號(hào),就可以看見效果了。
這里用到了一個(gè)開源的代碼: AutoAssist ,有興趣的可以看一下。
以下為代碼片斷:
index.htm<script type="text/javascript" src="javascripts/prototype.js"></script>
<script type="text/javascript" src="javascripts/autoassist.js"></script>
<link rel="stylesheet" type="text/css" href="styles/autoassist.css"/>
<div>
<input type="text" name="keyword" id="keyword"/>
<script type="text/javascript">
Event.observe(window, "load", function() {
var aa = new AutoAssist("keyword", function() {
return "forCSV.php?q=" this.txtBox.value;
});
});
</script>
</div>
不知道為什么不能用keywords做文本框的名字,我試了很久,后來(lái)還是用keyword,搞得還要修改原代碼。
forCSV.php<?php
$keyword = $_GET['q'];
$count = 0;
$handle = fopen("products.csv", "r");
while (($data = fgetcsv($handle, 1000)) !== FALSE) {
if (preg_match("/$keyword/i", $data[0])) {
if ($count > 10) { break; }
?>
<div onSelect="this.txtBox.value='<?php echo $data[0]; ?>';">
<?php echo $data[0]; ?>
</div>
<?php
}
}
fclose($handle);
if ($count == 0) {
?>
: (, nothing found.
<?php
}
?>
原來(lái)的例子中的CSV文件是根據(jù)\t來(lái)分隔的,我們也可以用空格或其它的來(lái)分隔,這取決于你的數(shù)據(jù)結(jié)構(gòu)。
當(dāng)然你也可以不讀文件,改從數(shù)據(jù)庫(kù)里讀資料,就不再?gòu)U話了。
效果圖如下:

分享:Ajax 中的高級(jí)請(qǐng)求和響應(yīng)對(duì)于很多 Web 開發(fā)人員來(lái)說(shuō),只需要生成簡(jiǎn)單的請(qǐng)求并接收簡(jiǎn)單的響應(yīng)即可;但是對(duì)于希望掌握 Ajax 的開發(fā)人員來(lái)說(shuō),必須要全面理解 HTTP 狀態(tài)代碼、就緒狀態(tài)和 XMLHttpRequest 對(duì)象。在本文中
- Ajax中瀏覽器的緩存問(wèn)題解決方法
- AJAX和WebService實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)具體代碼
- ajax 登錄功能簡(jiǎn)單實(shí)現(xiàn)(未連接數(shù)據(jù)庫(kù))
- AJAX和WebService實(shí)現(xiàn)郵箱驗(yàn)證(無(wú)刷新驗(yàn)證郵件地址是否合法)
- AJAX和三層架構(gòu)實(shí)現(xiàn)分頁(yè)功能具體思路及代碼
- 使用AJAX返回WebService里的集合具體實(shí)現(xiàn)
- AJAX獲取服務(wù)器當(dāng)前時(shí)間及時(shí)間格式輸出處理
- ajax傳遞多個(gè)參數(shù)具體實(shí)現(xiàn)
- ajax傳遞一個(gè)參數(shù)具體實(shí)現(xiàn)
- 滑輪滾動(dòng)到頁(yè)面底部ajax加載數(shù)據(jù)配合jsonp實(shí)現(xiàn)探討
- jQery ajax——load()方法示例介紹
- jQuery+Ajax實(shí)現(xiàn)表格數(shù)據(jù)不同列標(biāo)題排序(為表格注入活力)
AJAX教程Rss訂閱編程教程搜索
AJAX教程推薦
猜你也喜歡看這些
- 如何用AJAX打造博客無(wú)刷新搜索
- Ajax入門Tags標(biāo)記
- 那些年,我還在學(xué)習(xí)Ajax 學(xué)習(xí)筆記
- ajax 登錄功能簡(jiǎn)單實(shí)現(xiàn)(未連接數(shù)據(jù)庫(kù))
- 使用AJAX技術(shù)打造博客無(wú)刷新搜索引擎
- 解析AJAX進(jìn)度條
- 如何使用WatiN對(duì)ASP.NET頁(yè)面進(jìn)行單元測(cè)試
- 使用 JavaScript 和 Ajax 發(fā)出異步請(qǐng)求
- Json數(shù)據(jù)異步綁定到界面的Table并且自動(dòng)刷新原理及代碼
- 看圖理解 普通交互方式和Ajax交互方式區(qū)別
- 相關(guān)鏈接:
- 教程說(shuō)明:
AJAX教程-Ajax技術(shù)實(shí)踐之完成Ajax自動(dòng)完成功能
。