1.jquery事件可以绑定n个,如果不进行取消就会重复调用绑定的事件。深感体会,搞了两小时终于发现其中奥妙。
以下代码不能单独运行的。需要 bootstrap和jquery
[javascript] /**
* 用于显示对话框消息框
* 参数 title 消息标题
* 参数 content 消息内容
* 参数 buttomtitle 处理消息的按钮自定义的,比如确认删除
* 参数 fun 自定义按钮click事件
* 参数 passondata 传递到自定义fun里的参数
*/
function show_msg (title,content,buttomtitle,fun,passondata) {
$(#msg #mymodallabel).html(title);
$(#msg .modal-body).html(content);
$('#msg #msg_c').html(buttomtitle).click(function(){
fun(passondata);//调用自定义的函数,以及传递自定义的数据
$('#msg').modal('hide');//点击完就把窗口隐藏了
$(this).unbind('click');//如果不取消事件,那么将重复调用。。
});;
$('#msg').modal('show');
}
/**
* 用于显示对话框消息框
* 参数 title 消息标题
* 参数 content 消息内容
* 参数 buttomtitle 处理消息的按钮自定义的,比如确认删除
* 参数 fun 自定义按钮click事件
* 参数 passondata 传递到自定义fun里的参数
*/
function show_msg (title,content,buttomtitle,fun,passondata) {
$(#msg #mymodallabel).html(title);
$(#msg .modal-body).html(content);
$('#msg #msg_c').html(buttomtitle).click(function(){
fun(passondata);//调用自定义的函数,以及传递自定义的数据
$('#msg').modal('hide');//点击完就把窗口隐藏了
$(this).unbind('click');//如果不取消事件,那么将重复调用。。
});;
$('#msg').modal('show');
}html消息框模板
[html]
×
取消
×
取消
调用例程
[javascript] show_msg('标题要长长长长的','这里可以写html比如加粗的的字体噢','删除',function(e){
alert(e);
},'这里是点击删除后我传递过去的数据'); show_msg('标题要长长长长的','这里可以写html比如加粗的的字体噢','删除',function(e){
alert(e);
},'这里是点击删除后我传递过去的数据');
[javascript] function admin_content_del (id) {
var data=listdata[id];
show_msg('确认删除',data.content,'确认删除',function(delid){
$.ajax({
url: 'http://localhost/l/index.php',
type: 'get',
datatype: 'json',
data: {
m: 'admin',
a: 'delcontent',
id: delid
},
complete: function(xhr, textstatus) {
//called when complete
},
success: function(data, textstatus, xhr) {
if(data.state='ok'){
admin_content(1);
show_msg_success('删除成功');
}else{
show_msg_success('删除失败');
}
},
error: function(xhr, textstatus, errorthrown) {
//called when there is an error
}
});
},data.id);
}
function admin_content_del (id) {
var data=listdata[id];
show_msg('确认删除',data.content,'确认删除',function(delid){
$.ajax({
url: 'http://localhost/l/index.php',
type: 'get',
datatype: 'json',
data: {
m: 'admin',
a: 'delcontent',
id: delid
},
complete: function(xhr, textstatus) {
//called when complete
},
success: function(data, textstatus, xhr) {
if(data.state='ok'){
admin_content(1);
show_msg_success('删除成功');
}else{
show_msg_success('删除失败');
}
},
error: function(xhr, textstatus, errorthrown) {
//called when there is an error
}
});
},data.id);
}
2.settimeout延迟执行事件,这消息过真不错,挺常用的,但是这清空消息的方式,简单粗暴。
[javascript] /**
* 用于显示顶部消息。显示的消息3秒后自动销毁。
* 参数 content 消息内容
* 参数 face 消息的样式,真,为成功绿色的;假,为错误红色的
*/
function show_msg_success(content,face){
if (face==null) {
face=true;
}
face = face?'success':'error';
strtag='
'+content+'
';
$(strtag).prependto('#main');
settimeout(function(){
$(.alert).alert('close');
},3000);
} /**
* 用于显示顶部消息。显示的消息3秒后自动销毁。
* 参数 content 消息内容
* 参数 face 消息的样式,真,为成功绿色的;假,为错误红色的
*/
function show_msg_success(content,face){
if (face==null) {
face=true;
}
face = face?'success':'error';
strtag='
'+content+'
'; $(strtag).prependto('#main');
settimeout(function(){
$(.alert).alert('close');
},3000);
}
3.checkbox选中还是纯dom操作好. jquery的arrt()方法坑爹
checkbox.attr('checked',$(this).get()[0].checked);
选中复选框,但是第一次有效,第二次也有效,第三次以后,离奇失效了。问题不名真相。
[javascript] function click_tr() {
var checkbox = $(#maindata tr input);
checkbox.eq(0).click(function() {
//checkbox.attr('checked',$(this).get()[0].checked);
bool = $(this).get()[0].checked;
for (var i = 1; i checkbox[i].checked = bool;
};
});
$(#maindata tr).each(function(index) {
$(this).click(function() {
if (index == 0) {
} else {
var val = checkbox.eq(index);
val = val.get()[0];
var bool = val.checked;
//alert(index);
if (bool) {
val.checked = false;
} else {
val.checked = true;
}
}
});
});
function click_tr() {
var checkbox = $(#maindata tr input);
checkbox.eq(0).click(function() {
//checkbox.attr('checked',$(this).get()[0].checked);
bool = $(this).get()[0].checked;
for (var i = 1; i checkbox[i].checked = bool;
};
});
$(#maindata tr).each(function(index) {
$(this).click(function() {
if (index == 0) {
} else {
var val = checkbox.eq(index);
val = val.get()[0];
var bool = val.checked;
//alert(index);
if (bool) {
val.checked = false;
} else {
val.checked = true;
}
}
});
});进行探究一番写了一测试代码,但是依然无果,不明真相的全选不了。
[html]
全选
取消选中
全选
取消选中
$(#quxiao).click(function(){
$(#myform input).attr('checked',false);
});
});
4.说了这么多都没上效果图呢.
5.标题说是php实战,怎么前面帖的都是php代码。。下面帖出处理批量删除的php代码
[php] /**
* 用于批量删除留言
*/
function batchdelcontent(){
$json['state']=no;
$data=array();
$arr=$_post['delcontent'];
if (count($arr)>0) {
$json['state']=ok;
}
foreach ($arr as $value) {
$result=$this->db
->where(id=.$value)
->table(data)
->delete();
if ($result) {
$arr_data['state']=ok;
}else{
$arr_data['state']=no;
}
$arr_data['id']=$value;
$data[]=$arr_data;
}
$json['data']=$data;
echo json_encode($json);
}
/**
* 用于批量删除留言
*/
function batchdelcontent(){
$json['state']=no;
$data=array();
$arr=$_post['delcontent'];
if (count($arr)>0) {
$json['state']=ok;
}
foreach ($arr as $value) {
$result=$this->db
->where(id=.$value)
->table(data)
->delete();
if ($result) {
$arr_data['state']=ok;
}else{
$arr_data['state']=no;
}
$arr_data['id']=$value;
$data[]=$arr_data;
}
$json['data']=$data;
echo json_encode($json);
}今天写的php代码也就这么点了。。大部分都是javascript
我把admin.js帖出来给大家观赏一下。
[javascript] // javascript document
$(document).ready(function(e) {
$(#menu a).click(function() {
switch ($(this).text()) {
case '所有留言':
admin_content(1);
break;
case '基本设置':
$(#main #maindata).load('admin_config.html?r='+math.random());
break;
default:
break;
}
});
$(#main #maindata).load('admin_config.html?r='+math.random());
//$(#start).click();
});
/**
*留言管理
*/
listdata=null;
function admin_content(page) {
$.ajax({
url: 'http://localhost/l/admin.php?m=admin&a=content&page=' + page + '&rand=' + math.random(),
type: 'get',
datatype: 'json',
data: {},
complete: function(xhr, textstatus) {
//called when complete
},
success: function(json, textstatus, xhr) {
if (json['state'] == 'ok') {
var page_start = json['start'];//分页开始
var page_end = json['end'];//分页结束
var page_page = json['page'];//分页当前页面
listdata = json['data'];//分页数据
table_html='';
table_html+='批量删除';
/**
* 生成 表格内容
*/
table_html+= '
操作用户名留言内容发表时间
';
for (i = 0; i var trclass = (i % 2 == 0) ? 'class=info' : '';
//var tr_html = '删除 ' + listdata[i].username + ' ' + listdata[i].content + '
' + getlocaltime(listdata[i].time) + '
';
tr_html = '';
tr_html+=''+listdata[i].id+' ';
//删除
tr_html+='' + listdata[i].username + ' ';
tr_html+='' + listdata[i].content + '
';
tr_html+='' + getlocaltime(listdata[i].time) + '
';
table_html += tr_html;
}
table_html += '
';
/**
*生成分页
*/
var page_html = '';
if (page_end !== 0) {
if (page_page == 1) {
page_html = page_html + '«';
} else {
page_html = page_html + '«';
}
}
for (var i = page_start; i if (page_page == i) {
page_html = page_html + '' + i + '';
} else {
page_html = page_html + '' + i + '';
}
}
if (page_end !== 0) {
if (page_page == page_end) {
page_html = page_html + '»';
} else {
page_html = page_html + '»';
}
}
page_html = page_html + '
';
var maindata = $(#main #maindata);
maindata.html(table_html);
maindata.append(page_html);
admin_content_page(page_page,page_end); //挂接分页点击事件
click_tr();//挂接行点击事件;
}
//alert(json.data);
},
error: function(xhr, textstatus, errorthrown) {
//called when there is an error
}
});
}
/**
* 挂机分页事件
* 参数 page_page 当前分页
* 参数 page_end 分页数量
*/
function admin_content_page(page_page,page_end) {
$(#mainpage a).click(function() {
var charstr = $(this).text();
var num = charstr;
if (charstr == ») {
num = parseint(page_page) + 1;
if (page_end return;
}
} else if (charstr == «) {
num = parseint(page_page) - 1;
if (num return;
}
}
admin_content(num);
});
}
function getlocaltime(ns) {
return new date(parseint(ns) * 1000).tolocalestring().replace(/:\d{1,2}$/, ' ');
}
function admin_content_del (id) {
var data=listdata[id];
show_msg('确认删除',data.content,'确认删除',function(delid){
$.ajax({
url: 'http://localhost/l/index.php',
type: 'get',
datatype: 'json',
data: {
m: 'admin',
a: 'delcontent',
id: delid
},
complete: function(xhr, textstatus) {
//called when complete
},
success: function(data, textstatus, xhr) {
if(data.state='ok'){
admin_content(1);
show_msg_success('删除成功');
}else{
show_msg_success('删除失败');
}
},
error: function(xhr, textstatus, errorthrown) {
//called when there is an error
}
});
},data.id);
}
function admin_content_del_pl() {
var checkbox = $(#maindata :checked);
var listid = array();
checkbox.each(function() {
//alert($(this).get()[0].name);
if ($(this).get()[0].name == 'delcontent[]') {
listid.unshift($(this).val());
}
});
$.ajax({
url: 'http://localhost/l/admin.php?m=admin&a=batchdelcontent',
type: 'post',
datatype: 'json',
data: {delcontent: listid
},
complete: function(xhr, textstatus) {
//called when complete
},
success: function(json, textstatus, xhr) {
if(json.state=='ok'){
var data = json.data;
for (var i = 0; i if(data[i]['state']=='ok'){
show_msg_success(data[i].id + '删除成功');
}else{
show_msg_success(data[i].id + '删除失败',false);
}
};
}else{
}
admin_content(1);
},
error: function(xhr, textstatus, errorthrown) {
//called when there is an error
}
});
// alert(listid);
}
/**
* 用于显示对话框消息框
* 参数 title 消息标题
* 参数 content 消息内容
* 参数 buttomtitle 处理消息的按钮自定义的,比如确认删除
* 参数 fun 自定义按钮click事件
* 参数 passondata 传递到自定义fun里的参数
*/
function show_msg (title,content,buttomtitle,fun,passondata) {
$(#msg #mymodallabel).html(title);
$(#msg .modal-body).html(content);
$('#msg #msg_c').html(buttomtitle).click(function(){
fun(passondata);//调用自定义的函数,以及传递自定义的数据
$('#msg').modal('hide');//点击完就把窗口隐藏了
$(this).unbind('click');//如果不取消事件,那么将重复调用。。
});;
$('#msg').modal('show');
}
/**
* 用于显示顶部消息。显示的消息3秒后自动销毁。
* 参数 content 消息内容
* 参数 face 消息的样式,真,为成功绿色的;假,为错误红色的
*/
function show_msg_success(content,face){
if (face==null) {
face=true;
}
face = face?'success':'error';
strtag=''+content+'
';
$(strtag).prependto('#main');
settimeout(function(){
$(.alert).alert('close');
},3000);
}
//show_msg_content('啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊所得税')
/*
show_msg('标题要长长长长的','这里可以写html比如加粗的的字体噢','删除',function(e){
alert(e);
},'这里是点击删除后我传递过去的数据');
*/
function click_tr() {
var checkbox = $(#maindata tr input);
checkbox.eq(0).click(function() {
//checkbox.attr('checked',$(this).get()[0].checked);
bool = $(this).get()[0].checked;
for (var i = 1; i checkbox[i].checked = bool;
};
});
$(#maindata tr).each(function(index) {
$(this).click(function() {
if (index == 0) {
} else {
var val = checkbox.eq(index);
val = val.get()[0];
var bool = val.checked;
//alert(index);
if (bool) {
val.checked = false;
} else {
val.checked = true;
}
}
});
});
} // javascript document
$(document).ready(function(e) {
$(#menu a).click(function() {
switch ($(this).text()) {
case '所有留言':
admin_content(1);
break;
case '基本设置':
$(#main #maindata).load('admin_config.html?r='+math.random());
break;
default:
break;
}
});
$(#main #maindata).load('admin_config.html?r='+math.random());
//$(#start).click();
});
/**
*留言管理
*/
listdata=null;
function admin_content(page) {
$.ajax({
url: 'http://localhost/l/admin.php?m=admin&a=content&page=' + page + '&rand=' + math.random(),
type: 'get',
datatype: 'json',
data: {},
complete: function(xhr, textstatus) {
//called when complete
},
success: function(json, textstatus, xhr) {
if (json['state'] == 'ok') {
var page_start = json['start'];//分页开始
var page_end = json['end'];//分页结束
var page_page = json['page'];//分页当前页面
listdata = json['data'];//分页数据
table_html='';
table_html+='批量删除';
/**
* 生成 表格内容
*/
table_html+= '
操作用户名留言内容发表时间
';
for (i = 0; i var trclass = (i % 2 == 0) ? 'class=info' : ''; //var tr_html = '
删除 ' + listdata[i].username + ' ' + listdata[i].content + '
' + getlocaltime(listdata[i].time) + '
';
tr_html = '';
tr_html+=''+listdata[i].id+' ';
//删除 tr_html+='
' + listdata[i].username + ' ';
tr_html+='' + listdata[i].content + '
';
tr_html+='' + getlocaltime(listdata[i].time) + '
'; table_html += tr_html;
}
table_html += '
';/**
*生成分页
*/
var page_html = '
';
if (page_end !== 0) {
if (page_page == 1) {
page_html = page_html + '«';
} else {
page_html = page_html + '«';
}
}
for (var i = page_start; i if (page_page == i) {
page_html = page_html + '' + i + '';
} else {
page_html = page_html + '' + i + '';
} }
if (page_end !== 0) {
if (page_page == page_end) {
page_html = page_html + '
»';
} else {
page_html = page_html + '»';
} }
page_html = page_html + '
';
var maindata = $(#main #maindata);
maindata.html(table_html);
maindata.append(page_html);
admin_content_page(page_page,page_end); //挂接分页点击事件
click_tr();//挂接行点击事件;
}
//alert(json.data);
},
error: function(xhr, textstatus, errorthrown) {
//called when there is an error
}
});
}
/**
* 挂机分页事件
* 参数 page_page 当前分页
* 参数 page_end 分页数量
*/
function admin_content_page(page_page,page_end) {
$(#mainpage a).click(function() {
var charstr = $(this).text();
var num = charstr;
if (charstr == ») {
num = parseint(page_page) + 1;
if (page_end return;
}
} else if (charstr == «) {
num = parseint(page_page) - 1;
if (num return;
}
}
admin_content(num);
});
}
function getlocaltime(ns) {
return new date(parseint(ns) * 1000).tolocalestring().replace(/:\d{1,2}$/, ' ');
}
function admin_content_del (id) {
var data=listdata[id];
show_msg('确认删除',data.content,'确认删除',function(delid){
$.ajax({
url: 'http://localhost/l/index.php',
type: 'get',
datatype: 'json',
data: {
m: 'admin',
a: 'delcontent',
id: delid
},
complete: function(xhr, textstatus) {
//called when complete
},
success: function(data, textstatus, xhr) {
if(data.state='ok'){
admin_content(1);
show_msg_success('删除成功');
}else{
show_msg_success('删除失败');
}
},
error: function(xhr, textstatus, errorthrown) {
//called when there is an error
}
});
},data.id);
}
function admin_content_del_pl() {
var checkbox = $(#maindata :checked);
var listid = array();
checkbox.each(function() {
//alert($(this).get()[0].name);
if ($(this).get()[0].name == 'delcontent[]') {
listid.unshift($(this).val());
}
});
$.ajax({
url: 'http://localhost/l/admin.php?m=admin&a=batchdelcontent',
type: 'post',
datatype: 'json',
data: {delcontent: listid
},
complete: function(xhr, textstatus) {
//called when complete
},
success: function(json, textstatus, xhr) {
if(json.state=='ok'){
var data = json.data;
for (var i = 0; i if(data[i]['state']=='ok'){
show_msg_success(data[i].id + '删除成功');
}else{
show_msg_success(data[i].id + '删除失败',false);
}
};
}else{
}
admin_content(1);
},
error: function(xhr, textstatus, errorthrown) {
//called when there is an error
}
});
// alert(listid);
}
/**
* 用于显示对话框消息框
* 参数 title 消息标题
* 参数 content 消息内容
* 参数 buttomtitle 处理消息的按钮自定义的,比如确认删除
* 参数 fun 自定义按钮click事件
* 参数 passondata 传递到自定义fun里的参数
*/
function show_msg (title,content,buttomtitle,fun,passondata) {
$(#msg #mymodallabel).html(title);
$(#msg .modal-body).html(content);
$('#msg #msg_c').html(buttomtitle).click(function(){
fun(passondata);//调用自定义的函数,以及传递自定义的数据
$('#msg').modal('hide');//点击完就把窗口隐藏了
$(this).unbind('click');//如果不取消事件,那么将重复调用。。
});;
$('#msg').modal('show');
}
/**
* 用于显示顶部消息。显示的消息3秒后自动销毁。
* 参数 content 消息内容
* 参数 face 消息的样式,真,为成功绿色的;假,为错误红色的
*/
function show_msg_success(content,face){
if (face==null) {
face=true;
}
face = face?'success':'error';
strtag='
'+content+'
'; $(strtag).prependto('#main');
settimeout(function(){
$(.alert).alert('close');
},3000);
}
//show_msg_content('啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊所得税')
/*
show_msg('标题要长长长长的','这里可以写html比如加粗的的字体噢','删除',function(e){
alert(e);
},'这里是点击删除后我传递过去的数据');
*/
function click_tr() {
var checkbox = $(#maindata tr input);
checkbox.eq(0).click(function() {
//checkbox.attr('checked',$(this).get()[0].checked);
bool = $(this).get()[0].checked;
for (var i = 1; i checkbox[i].checked = bool;
};
});
$(#maindata tr).each(function(index) {
$(this).click(function() {
if (index == 0) {
} else {
var val = checkbox.eq(index);
val = val.get()[0];
var bool = val.checked;
//alert(index);
if (bool) {
val.checked = false;
} else {
val.checked = true;
}
}
});
});
}index.html代码
[html]
无标题文档
瀑布流留言板管理系统
留言管理
所有留言
网站管理
基本设置