实例讲解php提交表单关闭layer弹窗iframe

介绍一款非常好用的前端弹窗插件:

layer 官网地址:http://layer.layui.com/

根据官方的API:layer的iframe弹窗

  1. //iframe层-父子操作
  2. layer.open({
  3. type: 2,
  4. area: ['700px', '530px'],
  5. fix: false, //不固定
  6. maxmin: true,
  7. content: 'test/iframe.html'
  8. });

这里以php开发为例 演示如何 提交表单后自动关闭layer弹窗

(1)弹出layer编辑框 :

  1. function edit(id){
  2. if(|'||undefined'){
  3. alert('操作编号为空,请联系管理员');
  4. }
  5. layer.open({
  6. type: 2,
  7. area: ['700px', '530px'],
  8. fix: false, //不固定
  9. maxmin: true,
  10. content: 'index.php?m=content&c=meiti&a=edit_paiqi&id='+id
  11. });
  12. }

(2)编辑页面主要代码

<input name="dosubmit" type="submit" value="提交" class="button" >

(3)php后台保存数据并指向一个关闭layer窗口的方法

  1. public function edit_config_paiqi(){
  2. $id = trim($_REQUEST['id']);
  3. $paiqi_db = pc_base::load_model('paiqi_config_model');
  4. if($_REQUEST['dosubmit']){
  5. $insertinfo = array();
  6. $insertinfo['catid'] = trim($_POST['catid']);
  7. $insertinfo['meitiid'] = trim($_POST['meitiid']);
  8. $insertinfo['title'] = trim($_POST['title']);
  9. $insertinfo['meitizhuname'] = trim($_POST['meitizhuname']);
  10. $insertinfo['meitizhuid'] = trim($_POST['meitizhuid']);
  11. $insertinfo['createtime'] = SYS_TIME;
  12. $insertinfo['saturation'] = trim($_POST['saturation']);
  13. $datas = $paiqi_db->update($insertinfo,array("id"=>$id));
  14. if($datas){
  15. <span >showmessage(L('operation_success'),'?m=content&c=meiti&a=closewindow');//保存成功指向关闭窗口方法</span>
  16. }
  17. }else{
  18. $datas = $paiqi_db->select(array("id"=>$id));
  19. $template = "edit_config_paiqi";
  20. include $this->admin_tpl($template);
  21. }
  22. }
  23. /**
  24. * 关闭layer层
  25. */
  26. public function closewindow(){
  27. $template = "close_layer";
  28. include $this->admin_tpl($template);
  29. }

(4)关闭窗口并刷新父窗口页面的关键代码

  1. $(function(){
  2. parent.location.reload();//刷新父窗口
  3. parent.layer.closeAll();//关闭所有layer窗口
  4. });

注意:该页面需要加载layer需要的js库才能使用layer方法