关于x-admin监听提交踩坑
下载好x-admin中的的监听提交 本来是这样的,之前用这个怎么都拿不到返回值
//监听提交
form.on('submit(add)', function(data){
console.log(data);
//发异步,把数据提交给php
layer.alert("增加成功", {icon: 6},function () {
// 获得frame索引
var index = parent.layer.getFrameIndex(window.name);
//关闭当前frame
parent.layer.close(index);
});
return false;
});
要异步提交到后台,后台还要返回数据到前台就不能直接用这个,要用ajax返回提交然后再获取后台返回的数据
//监听提交
form.on('submit(add)', function(data){
$.ajax({
type:'post',
dataType:'json',
data:data.field,
url:'{:url("/admin/user/add")}',
success:function(data){
if(data.code == 200){
//发异步,把数据提交给php
layer.alert("增加成功", {icon: 6},function () {
// 获得frame索引
var index = parent.layer.getFrameIndex(window.name);
//关闭当前frame
parent.layer.close(index);
//添加成功刷新页面
parent.location.reload();
});
}else{
//发异步,把数据提交给php
layer.alert("增加失败", {icon: 5},function () {
// 获得frame索引
var index = parent.layer.getFrameIndex(window.name);
//关闭当前frame
parent.layer.close(index);
//添加失败刷新页面
parent.location.reload();
});
}
},
});
return false;
});
PHP代码
public function add(){
//1.判断post请求
if(request()->isPost()){
//2.接受参数
$postData = input('post.');
//3.验证器验证
$result = $this->validate($postData,"User.add",[],true);
if($result!==true){
$this->error( implode(',',$result) );
}
//4.写入数据库
$userModel = new User();
if($userModel->allowField(true)->save($postData)){
$response = ['code' => 200, 'msg' => '增加成功'];
return json($response);
}else{
$response = ['code' => -2, 'msg' => '增加失败'];
return json($response);
}
}
return $this->fetch();
}