<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    菠蘿三國

    大江東去,浪淘盡...
    隨筆 - 34, 文章 - 47, 評(píng)論 - 22, 引用 - 0
    數(shù)據(jù)加載中……

    學(xué)習(xí)EXT第九日(B):為一個(gè)表單填充或提交數(shù)據(jù)

    摘要:這個(gè)教程將指導(dǎo)你如何獲取數(shù)據(jù)到你的表單并將這些數(shù)據(jù)提交。
    Author: Shea Frederick
    Translater: pplboy
    Published: May 22, 2007
    Translater Date:May 30.2007

    這個(gè)教程使用了在getting started tutorial教程中使用過的 雇員信息編輯表單。如果你仍然不熟悉如何創(chuàng)建一個(gè)表單,你可以首先看一下這個(gè)例子。我建議下載用于這個(gè)例子的一段程序,這樣可能對你有一些幫助。你也可以找一個(gè)有效的例子。

    我們將經(jīng)歷使用表單的整個(gè)過程,從最初的從服務(wù)器獲取數(shù)據(jù)填入表單,到將數(shù)據(jù)返回給服務(wù)器。在后端我使用PHP和MySQL, 然而這個(gè)例子對于PHP和MySQL來說并不是特殊的,而是只要求你能夠從你的服務(wù)器讀取和輸出JSON數(shù)據(jù)。

    讓我們開始吧
    首先我們必須設(shè)置表單的url, 這是一個(gè)能獲得POST數(shù)據(jù)并將其寫進(jìn)我們的數(shù)據(jù)庫的PHP腳本.


    var form_employee = new Ext.form.Form({
     ...
     url:'forms-submit-process.php',
     ...
    });
     我們的數(shù)據(jù)包含5個(gè)字段:id, name, title, hire_date和active,這些字段可以被取回并放置到一個(gè)數(shù)據(jù)存儲(chǔ)對象(Store)中。

    以下的程序構(gòu)造了一個(gè)數(shù)據(jù)存儲(chǔ)對象,在這個(gè)時(shí)候沒有數(shù)據(jù)被取回,我們的數(shù)據(jù)代理(Proxy)對象提交到一個(gè)PHP腳本,用來取回?cái)?shù)據(jù)庫id為14的行 并將它轉(zhuǎn)換成一個(gè)JSON字符串。


    employee_data = new Ext.data.Store({
    proxy: new Ext.data.HttpProxy({url: 'forms-submit-getdata.php?id=14'}),
    reader: new Ext.data.JsonReader({},[ 'id', 'name', 'title', 'hire_date', 'active']),
    remoteSort: false
    });


    接下來要做的是設(shè)定我們的事件監(jiān)聽者來監(jiān)察什么時(shí)候數(shù)據(jù)被載入, 這個(gè)將保證我們不會(huì)在數(shù)據(jù)被載入之前填入表單。


    employee_data.on('load', function() {
     
     // data loaded, do something with it here...
       
    });
     當(dāng)數(shù)據(jù)被載入后,我們可以取回?cái)?shù)據(jù)并用setValue方法將其填入表單。這里我們用getAt(0) 從我們的數(shù)據(jù)存儲(chǔ)對象里重新取回第一行數(shù)據(jù)(行zero)。


    注意:這里使用的表單和表單字段在getting started tutorial中有定義和解釋。


    employee_name.setValue(employee_data.getAt(0).data.name);
    employee_title.setValue(employee_data.getAt(0).data.title);
    employee_hire_date.setValue(employee_data.getAt(0).data.hire_date);
    employee_active.setValue(Ext.util.Format.boolean(employee_data.getAt(0).data.active));
     我們將要?jiǎng)?chuàng)建提交按鈕并添加到表單,記得給來源于表單字段的POST數(shù)據(jù)設(shè)定擴(kuò)展參數(shù)。你將會(huì)發(fā)現(xiàn)通過行確定字段(id)對于讓php腳本找到需要更新的行非常有用,同時(shí)為了更好的判斷,還需要一個(gè)action判定。


    我還使用isValid參數(shù)來保證表單在提交前符合每一個(gè)字段的要求。


    form_employee.addButton('Save', function(){
     if (form_employee.isValid()) {
      form_employee.submit({
       params:{
        action:'submit',
        id:employee_data.getAt(0).data.id
       },
       waitMsg:'Saving...'
      }); 
     }else{
      Ext.MessageBox.alert('Errors', 'Please fix the errors noted.');
     }
    }, form_employee);

    form_employee.render('employee-form');
     讀取我們的數(shù)據(jù)
    現(xiàn)在我們來讀取數(shù)據(jù)


    employee_data.load();
     這樣真的能夠驚人簡單的創(chuàng)建一個(gè)可用的表單,與成對的服務(wù)器段腳本接合,就能夠?qū)?shù)據(jù)從數(shù)據(jù)庫獲取并寫入修改后的數(shù)據(jù)。這些服務(wù)端腳本可以簡單到只需幾行而已。

    接下來是什么?

    通常來說,API文件和例子對于學(xué)習(xí)怎么樣將表單改造成你所需要的形式來說是很不錯(cuò)的途徑。

    posted on 2007-08-07 14:04 菠蘿 閱讀(1124) 評(píng)論(1)  編輯  收藏 所屬分類: EXT

    評(píng)論

    # re: 學(xué)習(xí)EXT第九日(B):為一個(gè)表單填充或提交數(shù)據(jù)[未登錄]  回復(fù)  更多評(píng)論   

    php的代碼呢?這是一個(gè)關(guān)鍵
    2008-09-19 08:01 | x
    主站蜘蛛池模板: 99re6在线精品免费观看| 在线亚洲v日韩v| 久久精品电影免费动漫| 国产亚洲精品资源在线26u| 一道本不卡免费视频| 免费一级毛片在线播放不收费| 亚洲精品无码人妻无码| 在线观看免费为成年视频| 亚洲youwu永久无码精品| 在线免费观看国产视频| 国产成人不卡亚洲精品91| 国产麻豆剧传媒精品国产免费| 狠狠入ady亚洲精品| 亚洲国产香蕉人人爽成AV片久久 | 亚洲Av无码乱码在线播放| 国产AV无码专区亚洲AV麻豆丫| 免费女人18毛片a级毛片视频| 免费一级全黄少妇性色生活片| 亚洲日韩在线观看| a级男女仿爱免费视频| 久久青青草原亚洲av无码app | 日本高清免费网站| 成人午夜免费视频| 亚洲v高清理论电影| 久久久久久久91精品免费观看| 亚洲AV性色在线观看| 亚洲精品天堂成人片?V在线播放| 伊人免费在线观看| 亚洲精品综合久久中文字幕| 蜜桃精品免费久久久久影院| 一级成人毛片免费观看| 亚洲精品美女在线观看| 免费看AV毛片一区二区三区| 久久精品成人免费观看97| 亚洲综合图片小说区热久久| 热久久精品免费视频| 日本在线免费观看| 亚洲精华国产精华精华液| 国产V亚洲V天堂无码久久久| 毛片视频免费观看| 免费观看久久精彩视频|