php+ajax 仿google 下拉框代碼三

來源:互聯網
上載者:User

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<style>
    *{font: 12px '宋體'}
    .tab_suggest{border:1px solid #333; background:#fff; position:absolute; z-index:101; visibility: hidden;}
    .tab_suggest th, .tab_suggest td{font:12px '宋體'; font-weight:normal; height:17px; text-align:left; line-height:17px; padding:2px 3px; white-space:nowrap; cursor: default;}
    .tab_suggest td{color:#008000; text-align:right;}
    .tab_suggest tr.cur{background:#36c; color:#fff}
    .tab_suggest tr.cur td{color:#fff}
</style>
<title>無標題文檔</title>
<script type="text/javascript" src="js/suggest.js"></script>
<script type="text/javascript">
window.onload=function(){
    var mySuggest = new hansir.TextSuggest();
    mySuggest.add_suggest('textSuggest', 'suggest.php', 'post');
    mySuggest.add_suggest('textSuggest2', 'suggest.php', 'post', 100);
    $('textSuggest').focus();
}
</script>
</head>
<body>
<br /><br />
<form action="suggest.php" method="post"><input type="hidden" name="add" value="add" />
沒有遲延:<input type="text" id="textSuggest" name="keyword" style="width:300px;" autocomplete="off" /> <input type="submit" value="提 交" />
</form>
<br /><br /><br />
<form action="suggest.php" method="post"><input type="hidden" name="add" value="add" />
遲延100ms:<input type="text" id="textSuggest2" name="keyword" style="width:300px;" autocomplete="off" /> <input type="submit" value="提 交" />
</form>
</body>
</html>
最後的html檔案.

調用:
後台資料以 [['關鍵字符','估計數量'], ['關鍵字符','估計數量'], ...] 格式輸出。
頁面onload後調用(因為有body.appendChild方法)
var mySuggest = new hansir.TextSuggest();
mySuggest.add_suggest(inp, url, method, defer, defer2);
除了前兩項必填,後三項都是可選的
   inp :輸入框ID名。
   url :ajax請求的後台伺服器頁面地址。
method :發送方試 get或post,預設post。
defer :按鍵計時,即使用者輸入字元多久後請求伺服器,預設不計時,使用者輸入字元後立即發送。
defer2 :伺服器返回結果計時,即伺服器發送請求後多長時間沒有返回資料,列表自動隱藏,預設200ms。
測試說明:
1、資料庫存放的是臨時資料。
2、可以輸入“中華人民共和國”,“中”,”藍色“ 測試。
3、可以輸入一些其他的自訂資料,提交存到表裡,然後就可以用剛剛提交的資料測試。
4、我的伺服器網速慢,可能有個別卡的現象。
5、遲延:使用者輸入字元多久後請求伺服器,照顧輸入快的使用者 :)
   — 如果伺服器速度夠快可以考慮遲延,如果慢就無所謂了,反正是一個請求完成才會進行下一個 :)

已知缺陷:
1、下拉提示框位置問題:因為是以BODY為參考,所以位置會隨body大小改變(下拉式清單顯示時拖動視窗大小可看效果)。
   — 解決方案:真正用時可以根據input的父元素定位(這樣還可以省些資源,即不畢每次顯示下拉框都計算位置)。
2、用五筆IME在FF下輸入完成後上下方向鍵不好使要切換一下IME才可以,拼音則正常。
   — 解決方案:google也有同樣問題,所以。。。 :)。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.