Extjs 表單提交送給新手

Extjs的三種提交方式:javascript

表單Ajax提交,普通提交,單獨Ajax提交;java

1.表單ajax提交(默認提交方式)ajax

提交函數:當按下表單中的提交按鈕時執行下面的btn函數,按照表單的name進行提交。提交數據後根據後臺的返回值不一樣來回調success或者failure函數(和單獨ajax的提交不一樣),後臺返回值的形式:
【若是返回outputResult(「{success:true}」),則調用success的函數。若是返回:outputResult(「{success:false,reason:’」+e.getCause() +」‘}」); 則調用failure函數】json

function btn (){服務器

form.getForm.submit({網絡

method:’POST’,dom

params:{}, // 傳遞的參數函數

url:save_url, // 定義要跳轉的url,此爲屬性必需要有post

success: function(form,action){this

//Ext.Msg.alert(‘信息’,」提示:」+」response.responseText」);//加粗體是獲得後臺的具體返回信息。

Ext.Msg.alert(‘提示’,」數據修改爲功」);// 成功提示信息

store.load(); // 從新加載數據

},

failure:function(form,action){

Ext.Msg.alert(‘提示’,」跳轉失敗」);

}

});

}

2.普通提交:按照表單中的name提交。

Form. = new Ext.FormPanel({

……..// form的屬性

submit:function(){

this.getEl().dom.action =’url’;// 提交的url

this.getEl().dom.method = ‘post’;

this.getEl().dom.submit();

},

});

當按提交按鈕時,執行下面函數:

function btn (){

Form.form.submit();

}

3.extjs的普通ajax提交:

當按下提交按鈕是執行次函數:(注意:不能對form表單提交,也就是說也不能按form中的表單的name提交,只能提交params中的參數。只要可以提交到後臺無論數據可否正確執行就回調success函數,若是網絡有故障,或者頁面有錯誤數據到不了後臺,就執行failure函數。

後臺返回值的形式:【若是數據處理成功返回outputResult(「{success:true,’……..’}」)。若是數據處理失敗返回:outputResult(「{success:false,reason:’」+e.getCause() +」‘}」);】

咱們通常要求是:數據處理成功後顯示成功信息,失敗後顯示失敗信息。

可是這種提交無論返回什麼值,都會執行success函數。因此不能知足咱們的要求。爲了解決這個矛盾咱們有一下方法:

咱們在js頁面中的success函數中取得返回值,咱們對返回值進行判斷,若是success是true我門就打印成功信息,若是success是false咱們就打印失敗的提示。

取得返回值:var responseArray = Ext.util.JSON.decode(response.responseText); 判斷以下:

function btn(){

…..// 定義url,也能夠在方法外面

Ext.Ajax.request({

url:url,// 要跳轉的url,此爲屬性必需要有

method:’post’,

params:{}, // 提交參數

success: function(response, options)

{

var responseArray = Ext.util.JSON.decode(response.responseText);

if(responseArray.success==true)

{

Ext.example.msg(‘提示’, ‘數據保存成功’);

}

else{

Ext.Msg.alert(‘錯誤’, responseArray.reason);

}

}

failure:function(response,options)

{

Ext.Msg.alert(‘警告’,」數據處理錯誤緣由\」+response.responseText);

}

});

}

json數據格式

{"success":"true","data":{"id":"49","name":"12344553252","description":"adffafdadf"}}

格式很重要,格式正確纔可以在form裏面讀出來。

 

普通方式提交:

                    text: "普通方式",
                    handler:function(){
                        if(form1.form.isValid()){
                            //只用指定TextField的id或者name屬性,服務器端Form中就能取到表單的數據
                            //若是同時指定了id和name,那麼name屬性將做爲服務器端Form取表單數據的Key
                            var form = form1.getForm().getEl().dom;
                            form.action = 'submit.aspx?method=Submit1&param1=abc';
                            //指定爲GET方式時,url中指定的參數將失效,表單項轉換成url中的key=value傳遞給服務端
                            //例如這裏指定爲GET的話,url爲:submit.aspx?param2=你輸入的值
                            //form.method = 'GET';//GET、POST
                            form.submit();
                        }
                    }

                       

 

默認的Ajax方式提交

相關文章
相關標籤/搜索