Ajax技術實踐之完成Ajax自動完成功能_AJAX教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:我的第一個AJAX程序
      Author:zfive5(zhaozidong)Email :zfive5@yahoo.com.cn 禮拜五下午公司網站維護的同事問我怎樣實現一個功能,一個提交頁上有兩個select,第二個select根據第一個select變,我的第一念頭就

      近日學習了一下AJAX,照做了幾個例子,感覺比較新奇。

      第一個就是自動完成的功能即Autocomplete,具體的例子可以在這里看: http://www.b2c-battery.co.uk

      在Search框內輸入一個產品型號,就可以看見效果了。

      這里用到了一個開源的代碼: 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做文本框的名字,我試了很久,后來還是用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
      }
      ?>

      原來的例子中的CSV文件是根據\t來分隔的,我們也可以用空格或其它的來分隔,這取決于你的數據結構。

      當然你也可以不讀文件,改從數據庫里讀資料,就不再廢話了。

      效果圖如下:

      點此在新窗口瀏覽圖片

      分享:Ajax 中的高級請求和響應
      對于很多 Web 開發人員來說,只需要生成簡單的請求并接收簡單的響應即可;但是對于希望掌握 Ajax 的開發人員來說,必須要全面理解 HTTP 狀態代碼、就緒狀態和 XMLHttpRequest 對象。在本文中

      來源:模板無憂//所屬分類:AJAX教程/更新時間:2008-08-22
      相關AJAX教程