showProcessMsg('正在保存数据, 请稍侯','正在保存中');
Grid.stopEditing();
var modifiedItems = Grid.getStore().modified;
var jsonData = convertRecordsToJson(modifiedItems);
form.submit({//form为html定义的form,此处用baseform
url:'xxxxxxxxxxxx.jsp',
method:'POST',
params:{data:jsonData},
successform,action){
Ext.MessageBox.hide();
Ext.MessageBox.alert('提示', '数据保存成功!共添加'+action.result.insertcount+'条,更新'+action.result.updatecount+'条.');
},
failure:form,action){
Ext.MessageBox.hide();
showError('错误', action.result.errors);
};
});
//该函数用于将编辑过的Grid中的数据行对应的Store中的数据项转换成JSON
function convertRecordsToJson(items)
{
if(items.length==0)
{
return '';
}
var jsonData = "[";
for(i=0;i<items.length;i++) {
record = items;
if(record.dirty) {
jsonData += Ext.util.JSON.encode(record.data) + ",";
}
}
jsonData = jsonData.substring(0,jsonData.length-1) + "]";
return jsonData;
}
Ext.Ajax.request({
url : 'xxxxxxxxxx.jsp'
method : 'post',
success : function(response, options) {
var results = Ext.util.JSON.decode(response.responseText);
alert(results.XXX);
},
failure : function() {
....
}
})
<div>
这里是一个简单的请求。
</div>
<div id="subButton"></div>
<textarea id="log" cols="40" rows="10"></textarea>
<script type="text/javascript">
function doJSON(stringData) {
try {
var jsonData = Ext.util.JSON.decode(stringData);
Ext.MessageBox.alert('Success', 'Decode of stringData OK<br />jsonData.date = ' + jsonData.date);
}
catch (err) {
Ext.MessageBox.alert('ERROR', 'Could not decode ' + stringData);
}
}
function doAjax() {
Ext.Ajax.request({
url : 'ajax.php' ,
params : { action : 'getDate' },
method: 'GET',
success: function ( result, request) {
var textArea = Ext.get('log').dom;
textArea.value += result.responseText + "/n";
//Ext.MessageBox.alert('Success', 'Data return from the server: '+ result.responseText);
doJSON(result.responseText);
},
failure: function ( result, request) {
Ext.MessageBox.alert('Failed', 'Successfully posted form: '+result.date);
}
});
}
var button = new Ext.Button('subButton', {
text: 'Click to submit an AJAX Request',
handler: doAjax
});
</script>