FormBuilder.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2020 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace service;
  12. use FormBuilder\Form;
  13. class FormBuilder extends Form
  14. {
  15. /**
  16. * 快速创建POST提交表单
  17. * @param $title
  18. * @param array $field
  19. * @param $url
  20. * @param $jscallback null 不执行 1 父级刷新 2 父级刷新关闭弹框 str 自定义
  21. * @return $this
  22. */
  23. public static function make_post_form($title,$field=[],$url='',$jscallback = null){
  24. if(is_numeric($url)) $jscallback=$url;
  25. if(is_string($field)) $url=$field;
  26. if(is_array($title)){
  27. $field=$title;
  28. $title='';
  29. }
  30. $form = Form::create($url);//提交地址
  31. $form->setMethod('POST');//提交方式
  32. $form->components($field);//表单字段
  33. $form->setTitle($title);//表单标题
  34. $js = '';//提交成功不执行任何动作
  35. switch ($jscallback){
  36. case 1://刷新父页面
  37. $js = 'parent.$(".J_iframe:visible")[0].contentWindow.location.reload();';//提交成功父级页面刷新
  38. break;
  39. case 2://关闭当前页面并延迟刷新
  40. $js = 'parent.$(".J_iframe:visible")[0].contentWindow.location.reload(); setTimeout(function(){parent.layer.close(parent.layer.getFrameIndex(window.name));},2000);';//提交成功父级页面刷新并关闭当前页面
  41. break;
  42. case 3://关闭当前页面
  43. $js='parent.layer.close(parent.layer.getFrameIndex(window.name));';
  44. break;
  45. case 4://关闭并刷新父页面不延迟
  46. $js='parent.layer.close(parent.layer.getFrameIndex(window.name));parent.$(".J_iframe:visible")[0].contentWindow.location.reload()';
  47. break;
  48. default:
  49. $js = $jscallback;
  50. break;
  51. }
  52. $form->setSuccessScript($js);//提交成功执行js
  53. return $form;
  54. }
  55. }