fastadmin 彈出視窗的功能

TaylorSWMM發表於2024-09-04

頁面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。這裡要根據業務需要返回指定的資料,否則前端接收不到資料。
}

抄:https://ask.fastadmin.net/article/2527.html

相關文章