? asked in 電腦與網際網路程式設計 · 1 decade ago

怎麼使用JavaScript連結到資料庫(EXT)

我不懂怎麼使用JavaScript連結資料庫,可以的話給我一個例題參考,謝謝

1 Answer

Rating
  • 1 decade ago
    Favorite Answer

    JavaScript無法連到資料庫,

    必須要透過Ajax,

    底下是一個範例, 是使用prototype.js的library實做的,

    其中參數accountList.action, 是一個url,

    是我server資料來源,

    會去取得帳號資訊回傳給我,

    onSuccess內則為當有回應所做的處理,

    必須要透過這種方式去和一個可以讀取資料庫的頁面

    取得資料才可以達到。

    //列出帳號列表

    function listAccount(){

    var table = $('listAtb');

    //移除原本存在的List

    removeTableContent(table,2);

    //呼叫Action取得帳號列表並且顯示

    new Ajax.Request('accountList.action',

    {

    onSuccess: function(transport){

    var accountlist = transport.responseXML.documentElement.getElementsByTagName("account");

    for( var i = 0; i< accountlist.length ; i++ ){

    var name = accountlist[i].firstChild.nodeValue;

    addAccountHandleMethod(name);

    }

    }

    });

    }

    這是第二個範例, 透過Ext的library實做的,

    原理相同。

    //利用Ajax執行Action取得SVN Repository列表

    function svnRepositoryInit(combo){

    Ext.Ajax.request({

    url: 'getSVNRepositoryList.action',

    success: function(transport){

    var repositoryList = transport.responseXML.documentElement.getElementsByTagName("repository");

    //格式必須[[data],[data]],因此要產生兩個array

    var rpList = new Array(repositoryList.length+1);

    var rp = new Array(1);

    //產生顯示的Data

    rp[0] = 'None';

    rpList[0] = rp;

    for( var i = 0; i < repositoryList.length ; i++ ){

    rp = new Array(1);

    var name = repositoryList[i].firstChild.nodeValue;

    rp[0] = name ;

    rpList[i+1] = rp;

    }

    //Update Combobox data

    combo.store = new Ext.data.SimpleStore({

    fields: ['state'],

    data : rpList

    });

    }

    });

    }

    2009-03-31 20:07:45 補充:

    如果想學習Ajax,

    可先參考這一個網站,

    http://www.caterpillar.onlyfun.net/Gossip/AjaxGoss...

    裡面有一些基本用法,

    很適合初學者。

    買書的話我推薦,

    1. Ajax in Action

    2. Ajax的一百個問題

    3. Ajax技術手冊

    後面兩本很適合初學者看,

    Ajax in Action寫的比較深入一些,

    適合於對軟體較有概念的學習者看。

    2009-03-31 20:08:38 補充:

    Ext與prototype的labrary直接打即可搜尋到,

    也有不少的使用範例,

    至於怎麼用可能需要自己學習了...

    因為這是我辛苦得來了~~

    Source(s): 實際經驗
Still have questions? Get your answers by asking now.