JavaShuo
欄目
標籤
EXTJS 中Ajax 應用示例
時間 2019-11-24
標籤
extjs
ajax
應用
示例
欄目
Ajax
简体版
原文
原文鏈接
簡單的Ext.Ajax. request示例 var requestConfig = { url :'loginServer.jsp',//請求的服務器地址 params : {userName : 'tom',password : '123'},//請求參數 customer : '自定義屬性',//附加屬性 callback : function(options,success,response){//回調函數 var msg = ["請求是否成功:" ,success,"\n", "服務器返回值:",response.responseText, "本地自定義屬性:",options.customer]; alert(msg.join('')); } } Ext.Ajax.request(requestConfig);//發送請求 Ext.Ajax表單提交示例 var requestConfig = { url :'loginServer.jsp',//請求的服務器地址 form : 'loginForm',//指定要提交的表單id callback : function(options,success,response){//回調函數 var msg = ["請求是否成功:" ,success,"\n", "服務器返回值:",response.responseText]; alert(msg.join('')); } } Ext.Ajax.request(requestConfig);//發送請求 Ext.Ajax. request提交xml數據 function login(){ var requestConfig = { url :'loginServerXml.jsp',//請求的服務器地址 xmlData : getXml(),//發送xml文檔對象 callback : function(options,success,response){//回調函數 var msg = ["請求是否成功:" ,success,"\n", "服務器返回值:",response.responseText]; alert(msg.join('')); } } Ext.Ajax.request(requestConfig);//發送請求 } //生成xml文檔對象 function getXml(){ var name = document.forms['loginForm'].userName.value; var pwd = document.forms['loginForm'].password.value; var dom = new ActiveXObject("msxml2.DOMDocument"); var header = dom.createProcessingInstruction("xml", "version='1.0'"); dom.appendChild(header); var root = dom.createElement("loginInfo"); var userName = dom.createElement("userName"); userName.text = name; var password = dom.createElement("password"); password.text = pwd; root.appendChild(userName); root.appendChild(password); dom.appendChild(root); return dom; } xt.Ajax. request提交json數據 function login(){ var requestConfig = { url :'loginServerJson.jsp',//請求的服務器地址 jsonData : getJson(),//發送json對象 callback : function(options,success,response){//回調函數 var msg = ["請求是否成功:" ,success,"\n", "服務器返回值:",response.responseText]; alert(msg.join('')); } } Ext.Ajax.request(requestConfig);//發送請求 } //生成json對象 function getJson(){ var name = document.forms['loginForm'].userName.value; var pwd = document.forms['loginForm'].password.value; var jsonObj = { userName : name, password : pwd } return jsonObj; } Ext.Updater.update div內容更新器示例 var updater = Ext.get('content-div').getUpdater();//獲得元素的更新器 var btns = Ext.select('input');//選擇頁面中的全部input組件 btns.addListener('click',function(e,b){//成批綁定click事件 update('9-5-'+b.value+'.html');//調用更新函數 }); //定義更新函數 function update(url){ updater.update({//調用更新器的update方法,更新頁面元素 url : url }); } 定義渲染器更新頁面元素示例 Ext.Updater.defaults.showLoadIndicator = false;//不顯示更新指示器 var updater = Ext.get('content-div').getUpdater();//獲得元素的更新器 var cusRender = function(){//自定義渲染器 this.render = function(el, response, updateManager, callback){ var time = el.query('input')[0]; time.value = response.responseText; } } updater.setRenderer(new cusRender());//指定自定義渲染器 var btns = Ext.get('updateBtn');//選擇頁面中id爲updateBtn的元素 btns.on('click',function(){//綁定click事件 update();//調用更新函數 }); //定義更新函數 function update(){ updater.update({//調用更新器的update方法,更新頁面元素 url : 'timeServer.jsp' }); } 自動定時更新頁面元素示例 Ext.Updater.defaults.showLoadIndicator = false;//不顯示更新指示器 var updater = Ext.get('serverTime').getUpdater();//獲得元素的更新 Ext.get('startAutoBtn').on('click',startAutoUpdate); Ext.get('stopAutoBtn').on('click',stopAutoUpdate); function startAutoUpdate(){ //開始定時自動刷新 updater.startAutoRefresh(1,'timeServer.jsp'); } function stopAutoUpdate(){ //中止定時自動刷新 updater.stopAutoRefresh(); } 提交表單更新頁面元素示例 <mce:script type="text/javascript"><!-- Ext.onReady(function(){ Ext.Updater.defaults.indicatorText = '<div class="loading-indicator">登錄中....</div>';//設置更新指示器文字 var updater = Ext.get('loginMsg').getUpdater();//獲得元素的更新 Ext.get('loginBtn').on('click',login); function login(){ //提交表單,在回調函數中更新頁面元素 updater.formUpdate('loginForm','loginServer.jsp'); } }) // --></mce:script> </HEAD> <BODY style="margin=10 10 10 10;" mce_style="margin=10 10 10 10;"> <form id='loginForm'> 用戶名:<input name = 'userName' type='text'> 密 碼:<input name = 'password' type='password'> <input type='button' value='登錄' id='loginBtn'> </form> 狀 態:<span id='loginMsg'></span> </BODY> </HTML> 多級聯動菜單 <mce:script type="text/javascript"><!-- Ext.onReady(function(){ //將下拉框id順序存入數組中,以便經過遍歷數組級聯更新 var lists = ['s1','s2','s3'] //爲下拉框綁定change事件的處理函數 Ext.select('select').on('change',function(e,select){ //取得下拉框中選中的值 var value = select.options[select.selectedIndex].value; //取得下拉框id var id = select.id; //經過循環的到下拉框id在lists數組中的索引位置 for(var i = 0 ; i < lists.length ; i++){ if(lists[i] == id){ var index = i; } } //取得相鄰下拉框id在lists數組中的索引 var nextIndex = index + 1; if(nextIndex >= lists.length){ nextIndex = lists.length - 1; } //移除相鄰下拉框及後續下拉框的值 remove(nextIndex); //爲相鄰下拉框及後續下拉框加載新值 getList(nextIndex,value); }); //經過Ajax方式爲下拉框加載數據, function getList(index,value) { Ext.Ajax.request({ url : 'bookServer.jsp',//請求的服務器地址 params : { target : lists[index], value : value }, callback : function(options,success,response){ if(success){ //取得要更新的下拉框 var select = Ext.get(lists[index]); //執行返回字符串,獲得數組對象 var array = eval(response.responseText); //記錄數組中的第一各類,該值將做爲下級下拉框的默認取值條件 var firstValue; for(var i=0 ; i < array.length ; i++){ var o = array[i]; if(i == 0){ firstValue = o.value; } //向下拉框中追加條目 select.appendChild(createOption(o.value,o.name)); } //若是不是最後一個下拉框則繼續加載相鄰下拉框的數據 if(index < lists.length){ getList(index + 1,firstValue); } } } }) } //根據傳入的value和text建立選項 function createOption(value, text) { var opt = document.createElement("option"); opt.setAttribute("value", value); opt.appendChild(document.createTextNode(text)); return opt; } //級聯刪除下拉框及子下拉框的值 function remove(index){ for(var i = index ; i < lists.length ; i++){ var select = Ext.get(lists[i]).dom; while(select.length>0){ select.options.remove(select.length-1) } } } //默認加載值爲1的教學類列表 getList(1,"1"); //默認列表s1的教學類被選中 Ext.get('s1').dom.selectedIndex = 0; }) // --></mce:script> 自定義渲染器+解碼json對象+ json式生成表格(綜合示例:天氣預報) <mce:script type="text/javascript"><!-- Ext.onReady(function(){ //設置更新指示器文字 Ext.Updater.defaults.indicatorText = '<div class="loading-indicator">讀取天氣信息....</div>'; //獲得元素的更新器 var updater = Ext.get('weather').getUpdater(); //自定義渲染器 var weatherRender = function(){ this.render = function(el, response, updateManager, callback){ //解碼響應字符串,獲得對應的json對象 var weaObj = Ext.util.JSON.decode(response.responseText); //利用工具類Ext.DomHelper的overwrite方法生成表格並以覆蓋方式更新元素el Ext.DomHelper.overwrite(el,{ tag:'table',children:[ {tag:'tr',children:[ {tag:'td',html:'日期:'}, {tag:'td',html:weaObj.date} ]}, {tag:'tr',children:[ {tag:'td',html:'風速:'}, {tag:'td',html:weaObj.windSpeed} ]}, {tag:'tr',children:[ {tag:'td',html:'溼度:'}, {tag:'td',html:weaObj.humidity} ]}, {tag:'tr',children:[ {tag:'td',html:'最高氣溫:'}, {tag:'td',html:weaObj.maxTemp} ]}, {tag:'tr',children:[ {tag:'td',html:'最底氣溫:'}, {tag:'td',html:weaObj.minTemp} ]} ] }); } } //指定自定義渲染器 updater.setRenderer(new weatherRender()); //選擇頁面中id爲select的元素 var select = Ext.get('city'); //綁定change事件 select.on('change',function(e,sel){ var cityCode = sel.options[sel.selectedIndex].value; var cityName = sel.options[sel.selectedIndex].text; //調用更新函數,並將選中城市的編碼出入更新函數中 updateWeather(cityCode,cityName); }); //定義更新函數 function updateWeather(cityCode,cityName){ updater.update({//調用更新器的update方法,更新頁面元素 url : 'weatherServer.jsp', params : {cityCode:cityCode}, callback : function(el,success,response,options){ //讀取天氣信息失敗,則更新頁面元素已顯示錯誤提示 if(success == true){ Ext.get('cityName').update(cityName); }else{ el.update("讀取 "+cityName+" 天氣信息失敗!"); } } }); } //默認讀取北京的天氣狀況 updateWeather('CHXX0008','北京'); }) // --></mce:script> Ext.form.HtmlEditor + Updater更新器 + 延時Ajax任務(綜合示例:自動保存編輯器) <mce:script type="text/javascript"><!-- Ext.onReady(function(){ Ext.BLANK_IMAGE_URL = '../../extjs2.0/resources/images/default/s.gif'; Ext.QuickTips.init();//使用HtmlEditor以前必須初始化提示 var note = new Ext.Panel({ title:'網絡記事本', renderTo : 'webNote', frame : true, layout:'fit', tbar : [ { text : '保存', //點擊保存按鈕即時執行保存操做不進行延時 handler : saveNode }, '-', '最近保存時間:', Ext.get('saveTime').dom, '-', Ext.get('saveStatus').dom ], items : [ new Ext.form.HtmlEditor({ id : 'content', height : 150, width : 500, fontFamilies : ['宋體','隸書','黑體'],//字體列表 listeners : { //sync事件將在文本發生變化時被觸發 sync : editorChange } }) ] }); //取得HtmlEditor組件的引用 var editor = note.findById('content'); //設置更新指示器文字 Ext.Updater.defaults.indicatorText = '<div class="loading-indicator">保存....</div>'; //取得頁面中id爲saveTime元素的更新器 var timeUpdater = Ext.get('saveTime').getUpdater(); //取得頁面中id爲saveStatus元素的引用 var saveStatus = Ext.get('saveStatus'); //定義HtmlEditor輸入內容發生變化時的處理函數 function editorChange() { //文本變化後延時3000毫秒執行保存操做 task.delay(3000); } //將保存操做轉換爲一個延時任務 var task = new Ext.util.DelayedTask(saveNode); //定義保存文本內容的函數 function saveNode() { timeUpdater.update({ url : 'noteServer.jsp', method : 'POST', params : { //將文本內容做爲參數傳遞到後臺服務器 content : editor.getValue() }, callback : function(el,success,response,options){ if(success == true){ saveStatus.update("<font color='green'>保存成功</font>"); }else{ saveStatus.update("<font color='red'>保存失敗</font>"); } } }) } }) // --></mce:script> </HEAD> <BODY style="margin=10 10 10 10;" mce_style="margin=10 10 10 10;"> <div id='webNote' style="width:522"/> <div id='saveTime'/> <div id='saveStatus'/> </BODY> </HTML>
相關文章
1.
ExtJs MVC應用架構示例
2.
ExtJS表格示例
3.
ajax 調用示例
4.
Extjs---desktop應用
5.
Extjs 3.2 EXT中的AJAX
6.
Ajax應用舉例
7.
ajax框架---- ExtJS
8.
jquery ajax示例_使用jQuery示例的帶有JSP的AJAX
9.
javascript中的ajax案例應用
10.
php+jquery+ajax簡單Ajax調用示例
更多相關文章...
•
Thymeleaf+SpringMVC5示例
-
Thymeleaf 教程
•
Redis在Java Web中的應用
-
Redis教程
•
SpringBoot中properties文件不能自動提示解決方法
•
C# 中 foreach 遍歷的用法
相關標籤/搜索
extjs
例示
示例
Js應用實例
應用
多圖示例
示例教程
jQuery示例
示例詳解
示例代碼
Ajax
MySQL教程
Spring教程
Docker教程
應用
Ajax
註冊中心
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
以實例說明微服務拆分(以SpringCloud+Gradle)
2.
idea中通過Maven已經將依賴導入,在本地倉庫和external libraries中均有,運行的時候報沒有包的錯誤。
3.
Maven把jar包打到指定目錄下
4.
【SpringMvc】JSP+MyBatis 用戶登陸後更改導航欄信息
5.
在Maven本地倉庫安裝架包
6.
搭建springBoot+gradle+mysql框架
7.
PHP關於文件$_FILES一些問題、校驗和限制
8.
php 5.6連接mongodb擴展
9.
Vue使用命令行創建項目
10.
eclipse修改啓動圖片
本站公眾號
歡迎關注本站公眾號,獲取更多信息
相關文章
1.
ExtJs MVC應用架構示例
2.
ExtJS表格示例
3.
ajax 調用示例
4.
Extjs---desktop應用
5.
Extjs 3.2 EXT中的AJAX
6.
Ajax應用舉例
7.
ajax框架---- ExtJS
8.
jquery ajax示例_使用jQuery示例的帶有JSP的AJAX
9.
javascript中的ajax案例應用
10.
php+jquery+ajax簡單Ajax調用示例
>>更多相關文章<<