前端部分
<form class="layui-form" id="form" action="" style="margin-top: 20px;">
<input type="hidden" name="user_id" value="{$data.user_id}">
<div class="layui-form-item" style="margin-top: 14px;">
<label class="layui-form-label" style="margin-top: -4px;">联系人</label>
<div class="layui-input-block" style="width: 200px;">
<select name="contacts_id" lay-filter="aihao">
<option value=""></option>
{foreach $contacts as $v}
<option value="{$v.contacts_id}">{$v.name}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-form-item" style="margin-top: 14px;">
<label class="layui-form-label" style="margin-top: -4px;">售后类型</label>
<div class="layui-input-block" style="width: 200px;">
<select name="sales_type" lay-filter="aihao">
<option value=""></option>
<option value="客情维护">客情维护</option>
<option value="产品质量">产品质量</option>
<option value="安装问题">安装问题</option>
<option value="客户拉新">客户拉新</option>
</select>
</div>
</div>
<div class="layui-form-item" style="margin-top: 14px;">
<label class="layui-form-label" style="margin-top: -4px;">回访方式</label>
<div class="layui-input-block" style="width: 200px;">
<select name="follow_id" lay-filter="aihao">
<option value=""></option>
{foreach $follow_up as $v}
<option value="{$v.follow_id}">{$v.follow_name}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">回访详情</label>
<div class="layui-input-block">
<textarea style="width: 400px;" name="follow_xq" placeholder="请输入回访详情" class="layui-textarea"></textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="margin-top: -4px;">附件</label>
<div class="layui-input-block">
<div class="layui-upload">
<input type="file" id="file" name="file" class=""></input>
</div>
</div>
</div>
<div class="layui-form-item" style="margin-left: 111px;">
<button type="button" class="layui-btn" lay-submit="" lay-filter="sales_add">立即增加</button>
</div>
</form>
AJAX部分
//售后回访增加
form.on('submit(sales_add)',function(data) {
// console.log(data);
//formdata储存异步上传数据
var formData = new FormData($('#form')[0]);
formData.append('file',$(':file')[0].files[0]);//append() 方法在被选元素的结尾(仍然在内部)插入指定内容。
// console.log(formData);
$.ajax({
type: "POST",
url: "{:url('admin/admin/sales_add')}",
data:formData,
//这两个设置项必填 防止ajax处理数据
contentType: false,// 告诉jQuery不要去设置Content-Type请求头(发送数据到服务器时所使用的内容类型。默认是:"application/x-www-form-urlencoded"。)
processData: false,// 告诉jQuery不要去处理发送的数据(规定通过请求发送的数据是否转换为查询字符串。默认是 true。)
//这两个设置项必填 防止ajax处理数据
success: function(data){
if(data.code==200){
// alert('成功')
//发异步,把数据提交给php
layer.alert(data.msg, {icon: 1},function() {
//刷新当前页面
location.reload();
});
}else{
layer.alert(data.msg, {icon: 2})
}
},
});
return false;
});
后端部分
控制器部分:
/**
*@作者: 杨某人
* @描述: 执行售后回访增加
* @Date: 2021-04-16 10:14:44
*/
public function sales_add(){
$input=input('post.');
///判断前台是否有上传文件
if($_FILES['file']['error']!=0){
$file = null;
}else{
$file = request()->file("file");//获取前台ajax通过formData传过来的文件数据
}
$data=$this->AdminModel->sales_add($input,$file);
if($data==true){
return json(['code'=>200,'msg'=>'增加成功']);
}else{
return json(['code'=>500,'msg'=>'增加失败']);
}
}
model部分:
/**
* @作者: 杨某人
* @描述: 执行售后回访增加
* @Date: 2021-04-16 10:14:44
*/
public function sales_add($input,$file){
//判断上传是否为空 有图片就增加图片 没有的忽略
if($file==null){
$arr=array(
"user_id" => $input['user_id'],//客户id
"contacts_id" => $input['contacts_id'],//联系人id
"sales_type" => $input['sales_type'],//售后类型
"follow_id" => $input['follow_id'],//回访方式(跟进方式id)
"follow_xq" => $input['follow_xq'],//回访详情
"sales_add_time" => time(),//增加时间
);
$data=db('sales')->insert($arr);
if($data){
writelogs(session('id'),$input['user_id'],'售后回访增加',1,'售后回访');//操作写入日志 (登陆者id,用户id,行为描述,操作状态,操作表)
return true;
}else{
writelogs(session('id'),$input['user_id'],'售后回访增加',2,'售后回访');//操作写入日志 (登陆者id,用户id,行为描述,操作状态,操作表)
return false;
}
}else{
//文件上传
$info = $file->move('./static/uploads');//把上传的文件移动到设置的地址
if($info){
//把\\替换成/
$info = str_replace("\\","/",$info->getSaveName());//str_replace函数替换字符串中的一些字符(区分大小写)。
$upload = "/static/uploads/".$info;//拼接文件完整地址
$up=[
'user_id'=>$input['user_id'],
'enclosure_name'=>'售后',
'enclosure'=>$upload,
'enclosure_add_time'=>time()
];
$enclosure=db('enclosure')->insertGetId($up);
}
//文件上传
$arr=array(
"user_id" => $input['user_id'],//客户id
"contacts_id" => $input['contacts_id'],//联系人id
"sales_type" => $input['sales_type'],//售后类型
"follow_id" => $input['follow_id'],//回访方式(跟进方式id)
"follow_xq" => $input['follow_xq'],//回访详情
"enclosure_id" => $enclosure,//附件id
"sales_add_time" => time(),//增加时间
);
$data=db('sales')->insert($arr);
if($data || $enclosure){
writelogs(session('id'),$input['user_id'],'售后回访增加',1,'售后回访');//操作写入日志 (登陆者id,用户id,行为描述,操作状态,操作表)
return true;
}else{
writelogs(session('id'),$input['user_id'],'售后回访增加',2,'售后回访');//操作写入日志 (登陆者id,用户id,行为描述,操作状态,操作表)
return false;
}
}
}