一个批量删除的按钮,几个checkbox
1.在<table>的<thead>里<tr><th>加入
<th width="25"><input type="checkbox" id="checkAll" onclick="checkall()"></th>
,然后在下面的<tbody><tr>要循环的数据里加入
<td><input type="checkbox" value={$i.id} name="ck"></td>
然后写script,批量选择。
注意一个问题,是我之前遇到的,onclick的方法名,不要是保留字,不然,无效,我原来是 function all(){}
试了半天,我都怀疑人生了。
<script>
function checkall() {
var checkAll=$("#checkAll")[0].checked; //查看总checkbox的选择状态
if (checkAll==true){ //判断状态,checked是true就是批量选择
var checkOne=$("input[name='ck']");
for (i=0;i<checkOne.length;i++){
checkOne[i].checked=true;
}
}else{
var checkOne=$("input[name='ck']");
for (i=0;i<checkOne.length;i++){
checkOne[i].checked=false;
}
}
}
</script>
2.批量删除
<a href="javascript:;" onclick=del()></i> 批量删除</a>
删除
function del() {
if (confirm('您真的要删除吗?') == true) {
var all = $("input:checkbox[name='ck']:checked"); //所有name为ck并且是选择状态的checkbox
if (all.length == 0) {
alert("请选择,然后进行删除");
return; //下面代码不执行
}
var number = '';
$("input:checkbox[name='ck']:checked").each(function(k){
if(k == 0){
number = $(this).val();
}else{
number += ','+$(this).val();
}
})
for (i=0;i<number.split(',').length;i++){
id=number.split(',');
window.location.href = "{:url('entering/doDelete')}"+"?id="+id;
}
}
}
至于后台部分,我就不多赘述了。
二.批量审核
<td><select id="choose" onchange="c({$i.id},this)">
<option value="0" {if $i.status ==0}selected{/if}>未审核</option>
<option value="1" {if $i.status ==1}selected{/if}>审核通过</option>
<option value="2" {if $i.status ==2}selected{/if}>审核不通过</option>
</select></td>
function check() {
if (confirm('您真的要使他们审核通过么')){
var all=$("input:checked[name='ck']");
if (all.length==0){
alert("请先选择,然后审核");
return
}
var number = '';
$("input:checkbox[name='ck']:checked").each(function(k){
if(k == 0){
number = $(this).val();
}else{
number += ','+$(this).val();
}
})
id=number.split(',');
$.post(
"{:url('entering/updateStatus')}",
{id:id,status:1,
},
)
}
}
后台我用的thinkphp5.1
public function updateStatus(){
$status = $this->request->post("status",'','intval');
$id = $this->request->post("id",0,"intval");
if(is_array($id)){
//我当然知道有批量保存saveall,但炒鸡不好用啊,所以写foreach
foreach($id as $key=>$val){
$idd=$id[key];
$user=EMdel::get($idd);
$user->sava(['status'=>$status],['id'=>$idd]);
}
}else{
$user=EModel::get($id);
$user->save([
'status' => $status,
],['id' => $id]);
}
}
三.批量上传
1.html的input标签有multiple属性,可以多选。
2.我是用yii在后台接收的
public function uploadImgs(){
$uploadFile = new UploadedFile() ;
$fileSuffix=$uploadFile::getInstancesByName('file');
$data = [] ;
for ($i=0;$i<count($fileSuffix);$i++)
{
$endFile = 'uploads/gklr/'. getDateTime("YmdHis").rand(100,999) .'.png' ;
$a=move_uploaded_file($fileSuffix[$i]->tempName,$endFile);
$data[$i]= $endFile ;
}
return $data ;
}