extjs 提交請求



Extjs的三種提交方式:

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

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

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

function btn (){
	form.getForm.submit({
		method:’POST’,
		params:{}, // 傳遞的參數
		url:save_url, // 定義要跳轉的url,此爲屬性必須要有
		success: function(form,action){
			//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函數。所以不能滿足我們的要求。

這時我們有兩種方式可以解決這個問題。

第一種方法就是我們給刪除失敗的,設置服務器響應失敗的狀態位,即response.setStatus(500);

第二種方法就是我們在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);
		}
	});
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章