fastadmin 弹出窗口的功能
页面A,html代码中添加一个按钮:
添加
复制
页面A,在js代码中添加以下代码监听class=spec_add_btn这个按钮的点击事件并弹窗打开页面B
$(document).on('click','.spec_add_btn', function (event) {
var url = $(this).attr('data-url');
if(!url) return false;
var msg = $(this).attr('data-title');
var width = $(this).attr('data-width');
var height = $(this).attr('data-height');
var area = [$(window).width() > 800 ? (width?width:'800px') : '95%', $(window).height() > 600 ? (height?height:'600px') : '95%'];
var options = {
shadeClose: false,
shade: [0.3, '#393D49'],
area: area,
callback:function(value){
CallBackFun(value.id, value.name);//在回调函数里可以调用你的业务代码实现前端的各种逻辑和效果
}
};
Fast.api.open(url,msg,options);
});
复制
3、页面B,在js代码中对应的add方法里添加以下代码,监听submit并给页面A返回数据
Form.api.bindevent($("form[role=form]"), function(data, ret){
//这里是表单提交处理成功后的回调函数,接收来自php的返回数据
Fast.api.close(data);//这里是重点
Toastr.success("成功");//这个可有可无
}, function(data, ret){
Toastr.success("失败");
});
复制
4、页面B,在php代码对应的add方法里添加成功后执行以下代码
$result = $this->model->allowField(true)->save($params);
if ($result !== false)
{
$data['id'] = $id;
$data['name'] = $name;
$this->success('success',null,$data);//这里$data就是返回给第三步js的那个data。这里要根据业务需要返回指定的数据,否则前端接收不到数据。
}