jquery代码
//给特定的函数绑定上删除事件
$(document).on(‘click’, ‘.delete_adapay’, function() {
event.preventDefault();
var anchor = $(this).closest(‘a’);
// 获取 标签的参数值
var id = anchor.attr(‘data_id’);
console.log(id)
//获取门店id的多选框的值
var obj = document.getElementsByName("s_id");
var checkList = [];
for(k in obj){
if(obj[k].checked)
checkList.push(obj[k].value);
}
//获取选择列表中的门店属性值
var arr1 = [];
$("input[name='title']").each(function(){
arr1.push($(this).val());
})
// console.log(arr1);
//获取选择列表中的账户属性值
var arr2 = [];
$("input[name='adapay']").each(function(){
arr2.push($(this).val());
})
// console.log(arr2);
var arr3 = [];
$("input[name='ids']").each(function(){
arr3.push($(this).val());
})
// console.log(arr3);
var adapay = $('#adapay').val();
//添加上ajax请求
$.ajax({
url:'/admin/shop/association_del',
type:'post',
data:{
id:id,
adapay:adapay,
s_id:checkList,
s_id_old:arr1,
adapay_old:arr2,
ids:arr3
},
dataType:"json",
success:function(data){
document.getElementById('table-data').innerHTML = data.data;
}
});
});
php代码部分
//删除功能
public function association_del()
{
$request = $this->request-> param();
$id_jian = $request['id'];
// dump($request);die;
//查询出所要拼接的字符串的项
$s_ids = isset($request['s_id'])?$request['s_id']:[];
$where['id'] = array('in',$s_ids);
$store = Db::name('shop_store')->where($where)->select();
$adapay = Db::name('adapay_user')->where(['id'=> $request['adapay']])->find();
$string1 = '<div class="layui-card-body layui-table-body layui-table-main">
<table class="layui-table">
<thead>
<tr>
<th>门店</th>
<th>账户</th>
<th>操作</th>
</tr>
</thead>
<tbody>';
$string3 = '</tbody>
</table>
</div>';
//对新旧字符串进行处理和分析
//拼接字符串
$string2 = '';
//第一次传值
if(!isset($request['s_id_old']) && !isset($request['adapay_old'])){
$id = -1;
foreach($store as $value){
$string2 = $string2 . '<tr><td><input type="hidden" name="ids" value="'.$id.'" style=" display:none"><input type="text" name="title" value="'.$value["id"].'" style=" display:none">'.$value["title"].'</input></td><td><input type="text" name="adapay" value="'.$adapay["id"].'" style=" display:none">'.$adapay["name"].'</td><td><a href="javascript:(0)" class="layui-btn layui-btns ajax-delete delete_adapay" data_id="'.$id.'" style="background: #e90d24;">删除</a></td></tr>';
$id -- ;
}
//后续传值
}else{
//拼接旧的关联关系
//如果是新的有,旧的没有的,就直接以新的为标准
$new_list1=[];
//如果两个都有,也就是有需要修改的,会以新的为准
$new_list2 = [];
foreach ($s_ids as $key => $value) {
foreach ($request['s_id_old'] as $key2 => $value2) {
if($s_ids[$key] == $request['s_id_old'][$key2]){
$new_list2['store_id'] = $request['s_id_old'][$key2];
$new_list2['adapay_id'] = $request['adapay'];
$new_list2['ids'] = $request['ids'][$key2];
$new_list[] = $new_list2;
}
}
}
$new_list3 = [];
//如果是新的没有,旧的有,就按照旧的为准
foreach ($request['s_id_old'] as $key => $value) {
if (!in_array($request['s_id_old'][$key],$s_ids)) {
$new_list3['store_id'] =$request['s_id_old'][$key];
$new_list3['adapay_id'] =$request['adapay_old'][$key];
$new_list3['ids'] =$request['ids'][$key];
$new_list[] = $new_list3;
}
}
foreach ($new_list as $key => $value) {
$store_info = Db::name('shop_store')->where(['id'=>$new_list[$key]['store_id']])->find();
$adapay_info = Db::name('adapay_user')->where(['id'=>$new_list[$key]['adapay_id']])->find();
$id = $new_list[$key]['ids'];
if($id !== $id_jian){
$string2 = $string2 . '<tr><td><input type="hidden" name="ids" value="'.$id.'" style=" display:none"><input type="text" name="title" value="'.$store_info["id"].'" style=" display:none">'.$store_info["title"].'</input></td><td><input type="text" name="adapay" value="'.$adapay_info["id"].'" style=" display:none">'.$adapay_info["name"].'</td><td><a href="#" class="layui-btn delete_adapay ajax-delete" data_id="'.$id.'" style="background: #e90d24;">删除</a></td></tr>';
}
}
}
$string = $string1.$string2.$string3;
$res['code'] = 200;
$res['data'] = $string;
$this->ajaxReturn($res);
}