统用的CRUD操作,用于后台管理
技术 : webwork jquery dbutils
/*
@(#) showResource.js 静态资源管理_ajax 动态显示
@author chujz
@version 1.0 2010-01-01
*/
$(function(){
var showname = {a_resource_id:'资源编号',b_name:'资源名称',c_url:'超链接地址',d_module:'所属模块',e_pic_url:'图片地址',f_display:'是否首页显示',g_createdate:'创建时间'};
var __serverUrl = "/clubbg/ajax/ajaxRequest.action" // ajax统一提交路径
var __async = false; //默认为同步加载
var __timeout =4000; //默认超时时间
var __dataType = 'xml'; //接改数据格式
var __type = 'post'; //提交方式
var ajaxObj = { url: __serverUrl, type: __type, async: __async, dataType: __dataType, timeout: __timeout, error: error }; //ajax提交参数对象
$("table").append("<tr></tr>"); //组装列名
$.each(showname,function(i,value){
var __th = $("<th></th>").html(value).appendTo("table tr");
if(i=='a_resource_id')
__th.hide(); //id 不显示
})
var dialogObj = { autoOpen: false, modal: true, resizable: false, width: 600, height: 350, minWidth: 600, minHeight: 350 }; //定义模态对话框,其相应的button动态set
$("#dialog").dialog(dialogObj);
$("#module").change(function(){
$("#dialog").text(""); //清空单项数据
var __data = { sqlNames: 'getResource', type: 2 }
__data['map.module'] = $(this).val(); //放初始化外面
ajaxObj.data = __data;
ajaxObj.success = function(xml){
$("table tr:gt(0)").remove(); //清空原来的显示数据
$("table").next("span").remove();
if($("entry",xml).length>0){
$("entry",xml).each(function(i){ //解析每条记录对应的数据
var append_tr = "<tr>";
$(this).children().each(function(j){
if(j==0) //把编号隐藏起来
append_tr = append_tr + "<td style='display:none',name='" + $(this)[0].tagName + "'>" + $(this).text() + "</td>" ;
else
append_tr = append_tr + "<td name='" + $(this)[0].tagName + "'>" + $(this).text() + "</td>" ;
})
append_tr = append_tr + "</tr>"
$("table").append(append_tr)
});
$("table td[name='f_display']").each(function(){ //对true 及 false的处理
$(this).text($(this).text()=='1'?'是':'否'); //各字符串true比较
})
var obj = new MyObj(); //对模块显示汉化
$("table td[name='d_module']").each(function(i){
$(this).text(obj[$(this).text()]);
})
// TODO: 对图片的处理,悬浮时可以查看图片...
$("table tr:gt(0)").each(function(){ //添加相应的超链接
$("td:eq(1)",this).css("cursor","pointer").click(function(){
ajaxObj.data = "type=1&sqlNames=getOneResource&map.a_resource_id="+$(this).prev("td").text();
ajaxObj.success = function(xml){
$("#dialog").html('<p id="validateTips">所有字段必填.链接以“http://”开始,没有链接请输入“#”</p>');
$("entry",xml).each(function(){
var append_dl = $("key",this).text()
$("#dialog").append($("<dt></dt>").html(showname[$("key",this).text()]));
$("<dd></dd>").html($("<input size='45' type='text' name='"+$("key",this).text()+"'/>").val($("value",this).text())).appendTo("#dialog");
})
$("dd input[name='a_resource_id']").add("dd input[name='d_module']").parent().prev("dt").andSelf().hide() //隐藏a_resource_id及d_module
if($("dd input[name='f_display']").val() == 0) //对布尔的处理
$("dd:has(input[name='f_display'])").html("<input type='radio' name='f_display' value='1' />是<input type='radio' name='f_display' value='0' checked />否");
else
$("dd:has(input[name='f_display'])").html("<input type='radio' name='f_display' value='1' checked />是<input type='radio' name='f_display' value='0' />否");
$("#dialog").dialog('option','buttons', { //打开前设定button
'修改': function() { //修改的时候要把id放在where的位置上,id的顺序后移
var bValid = true;
var reg = /(^http:\/\/|^#$)/; //url校验
// 1: 参数校验_长度校验
$("*[name]",this).removeClass('ui-state-error').each(function(){
bValid = bValid && checkLength($(this),showname[$(this).attr("name")],1,100);
if($(this).attr("name").indexOf("url") != -1 && bValid){ //对url的检验
bValid = checkRegexp($(this),reg,"超链接地址格式不正确");
}
});
if (bValid) { // 2: ajax提交
var __data = { type: 3, sqlNames: 'modifyOneResource'};
$("input[type='text']:visible",this).each(function(){
__data['map.'+$(this).attr('name')] = encodeURI(encodeURI($(this).val())); //对中文处理
})
$("input[type='radio']:checked",this).each(function(){ //radio的处理
__data['map.'+$(this).attr('name')] = encodeURI(encodeURI($(this).val())); //对中文处理
})
__data['map.z_resourced_id'] = $("*[name='a_resource_id']").val(); //id 放在参数的最后
ajaxObj.data = __data;
ajaxObj.success = function(xml){
var msg = '';
$("entry",xml).each(function(){
msg = msg + " "+$("value",this).text();
})
alert(msg);
}
$.ajax(ajaxObj);
$(this).dialog('close');
$("#module").trigger('change'); //触发 change 函数
}
},
'删除': function() {
if(confirm('确实要删除吗')){
var __data = { type: 3, sqlNames: 'deleteOneResource' };
__data['map.a_resourced_id'] = $("input[name='a_resource_id']",this).val();
ajaxObj.data = __data;
ajaxObj.success = function(xml){
var msg = '';
$("entry",xml).each(function(){
msg = msg + " "+$("value",this).text();
})
alert(msg);
}
$.ajax(ajaxObj);
$(this).dialog('close');
$("#module").trigger('change'); //触发 change 函数
}
}
}) //button设定end
$("#dialog").dialog('open'); //打开模态对话框
}
$.ajax(ajaxObj);
});
})
}else{
$("table").after("<span color='#f88'>没有相应的资源</span>");
}
};
$.ajax(ajaxObj);
})
$('#create').click(function() {
if($("#module").val() == -1 ){
$("#dialog").html('请先选择资源类型');
$("#dialog").dialog('option','buttons', {'确定':function(){$(this).dialog('close')}});
$("#dialog").dialog('open');
}else{ //生成添加时对话页面
$("#dialog").html('<p id="validateTips">所有字段必填.链接以“http://”开始,没有链接请输入“#”</p>');
if($("#module").val() == 1 )
$("#dialog p").append(" <br/><font color=red>小图片的命名规则: 大图标的名字后加_small</font>");
$.each(showname,function(name,value){
if(name!='a_resource_id' && name!='g_createdate'){ //添加时 资源编号、创建时间 不显示
var append_dl = name;
$("#dialog").append($("<dt></dt>").html(value));
var valStr = "";
if(name.search(/url/g) != -1){
valStr = "http://";
}
$("<dd></dd>").html($("<input type='text' name='"+name+"'/>").val(valStr)).appendTo("#dialog");
}
})
$("dd input[name='d_module']","#dialog").val($("#module").val()).parent().prev("dt").andSelf().hide(); ////添加的类型隐藏提交或者不显示_隐藏提交
$("dd:has(input[name='f_display'])").html("<input type='radio' name='f_display' value='1' checked />是<input type='radio' name='f_display' value='0' />否");
$("#dialog").dialog('option','buttons', { //打开前设定button
'添加': function() {
var bValid = true;
var reg = /(^http:\/\/|^#$)/; //url校验
$("*[name]",this).removeClass('ui-state-error').each(function(){
// 1: 参数校验_长度校验
bValid = bValid && checkLength($(this),showname[$(this).attr("name")],1,100);
//对url的检验
if($(this).attr("name").indexOf("url") != -1 && bValid){
bValid = checkRegexp($(this),reg,"超链接地址格式不正确");
}
});
if (bValid) { // 2: ajax提交
var __data = {type:3,sqlNames:'addOneResource'};
$("*[name]",this).each(function(){
__data['map.'+$(this).attr('name')]=encodeURI(encodeURI($(this).val()))
})
ajaxObj.data = __data;
ajaxObj.success = function(xml){
var msg = '';
$("entry",xml).each(function(){
msg = msg + " "+$("value",this).text();
})
alert(msg); //提示操作结果
}
$.ajax(ajaxObj);
$(this).dialog('close'); //提示结果后关闭
$("#module").trigger('change'); //触发 change 函数
}
}
});//button设定end
$('#dialog').dialog('open');
}
})
})