Skip to content

Instantly share code, notes, and snippets.

@zhoumengkang
Last active January 1, 2016 10:29
Show Gist options
  • Select an option

  • Save zhoumengkang/8132082 to your computer and use it in GitHub Desktop.

Select an option

Save zhoumengkang/8132082 to your computer and use it in GitHub Desktop.
/**
* 后台JS操作对象
*/
var admin = {};
/**
* 注意表格外围必须有一个input为list的标签
* 获取选中的数据批量操作
*/
admin.getChecked = function() {
var ids = new Array();
$.each($('#list input:checked'), function(i, n){
if($(n).val() !='0' && $(n).val()!='' ){
ids.push( $(n).val() );
}
});
return ids;
};
/**
* 全选
* 注意表格外围必须有一个input为list的标签
*/
admin.checkAll = function(o){
if( o.checked == true ){
$('#list input[name="checkbox"]').attr('checked','true');
}else{
$('#list input[name="checkbox"]').removeAttr('checked');
}
};
/**
* 批量删除
* @param string table 表名
* @param string flag 是否删除的标志位字段名
* @return void
*/
admin.del = function(table,flag){
var id = admin.getChecked();//数据id数组
var table = table;
var flag = flag;
if(id.length==0){
ui.showMessage('请选择要删除的信息',1);
return false;
}
if(confirm( '确定要删除所选择的信息?' ))
{
$.post(U('admin/admin/del'),{id:id,table:table,flag:flag},function(msg){
admin.ajaxReload(msg);
},'json');
}
};
/**
* 单个删除操作
* @param string table 表名
* @param string flag 删除的标志字段
* @param int delid 需要删除数据的id
* @return void
*/
admin.delOne = function(table,flag,delid){
var table = table;
var flag = flag;
var id = [];
id.push(delid);
if(id.length==0){
ui.showMessage('请选择要删除的信息',1);
return false;
}
if(confirm( '确定要删除所选择的信息?' ))
{
$.post(U('admin/admin/del'),{id:id,table:table,flag:flag},function(msg){
admin.ajaxReload(msg);
},'json');
}
};
/**
* 处理ajax返回数据之后的刷新操作
* @param objetct obj 服务器端ajaxReturn函数输出的json格式的数据
* @param string callback 跳转地址字符串,例如 ‘admin/video/index’
* @return void
*/
admin.ajaxReload = function(obj,callback){
if("undefined" == typeof(callback)){
callback = "location.href = location.href";
}else{
callback = admin.createCallback(callback);
}
if(obj.status == 1){
ui.showMessage(obj.info,0);
setTimeout(callback,500);
}else{
ui.showMessage(obj.info,1);
}
};
/**
* 用于ajaxReload生成跳转地址
* @param string url 跳转地址字符串,例如 ‘admin/video/index’
* @return string callback 跳转语句,例如 ‘location.href=http://zhoumengkang.com’
*/
admin.createCallback = function(url){
var url = U(url);
//console.log(url);
var callback = "location.href ='"+url+"'";
console.log(callback);
return callback;
}
/**
* 将整个表单的数据转成json格式
* 用于全局表单提交
* @param jqObject form 表单对象
* @return object result 表单键值对组成的数组对象
*/
admin.jsonEncodeForm = function(form){
var data = $(form).serializeArray();
var result = {};
$.each(data,function(_,Y){
var name = Y.name,value = Y.value || '';
if (result[name] != null) {
if (!$.isArray(result[name])) {
result[name] = [result[name]];
};
result[name].push(value);
} else{
result[name] = value;
};
})
return result;
};
/**
* 全局表单更新
* @param string table 数据库表名
* @return void
*/
admin.update = function(table){
var url = U('admin/admin/doUpdate');
var data = admin.jsonEncodeForm($("form"));
$.post(url,{table:table,data:data},function(msg){
admin.ajaxReload(msg);
},'json')
};
/**
* 全局表增加
* @param string table 数据库表名
* @param string callback 跳转地址,例如 'admin/video/index'
* @return void
*/
admin.add = function(table,callback){
var url = U('admin/admin/add');
var data = admin.jsonEncodeForm($("form"));
$.post(url,{table:table,data:data},function(msg){
admin.ajaxReload(msg,callback);
},'json')
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment