兩級下拉條聯動方式+Ajax實現演算法

來源:互聯網
上載者:User

兩級下拉式功能表聯動方式:

也就是說,在第一級菜單當中指定了資訊,第二級下拉框當中的資訊為第一級下拉框的子物件。

1.      javascript

就是直接用javascript實現,加入一個changeCategory()方法, 從伺服器返回一個字串。這個字串由伺服器查詢資料庫動態產生。和ajax的區別就是在於,不用XHR對象。直接使用的onchange傳值。

 

2.      ajax + 自訂字串

id + 名字,傳遞的是一個完整字串。通過“-”隔開每個記錄,然後在每個記錄當中通過“,”隔開id和名字。

for (int i=0;, i<childs.size(); i++){

Category c = childs.get(i);

buf.append(c.getId()+”,”+c.getName()+”-”);

}

         //刪掉最後一個沒有必要的”-”

buf.deleteCharAt(buf.length()-1);

parse(req.responseText)

然後到用戶端用,split來解析。注意,解析兩次,用兩個字元數組完成。第一次,用“-”split得到每一條記錄,然後用“,”得到id和名字。

 

 

 

3.      ajax + xml 最麻煩,效率也不高。

 

同樣需要迴圈,

for (int i=0;, i<childs.size(); i++){

Category c = childs.get(i);

buf.append(“<category> <id>”+ c.getId()+</id> <name> “+ c.getName() + ”</name></category>,”);

}

 

buff.insert (0, “<categories>”);

buff.append(</categories>)

 

然後到用戶端,用javascript解析。用tagbyname.

注意,這次在用戶端,不用parse(req.responseText)而需要使用parseXML(req.responseXML);

var categories = xml.getElementsByTagName(“msg”)[0];

 

for(var i=0; i<categories.childNodes.length, i++){

var category =categories[i];

 

在callback當中:

var msg =req.responseXML.getElementsByTagName(“msg”)[0];

setMsg(msg.childNodes[0].nodeValue);

 

xml需要在伺服器構建,並在客戶機需要解析。

javascrpt處理xml,就是tagname

 

 

4.      ajax+javascript代碼

也就說,這次傳遞過來的,不是xml,而是代碼。是直接把下拉式功能表的javascript代碼寫入到一個字串當中。其實和不使用ajax是一樣的,採用的是直接在服務端把代碼寫好,然後通過ajax把字串送到用戶端,直接執行。和第一種方法的區別,在於就是使用了ajax,說白了就是用了XHR對象來傳遞。其實沒什麼很大的區別。

只是注意,執行的時候需要用的方法為eval(req.resonseText)。

還有要注意的,就是需要在傳遞之前,要加上encoding,保證中文的正確傳輸。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.