FormBuilder.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. /**
  3. *
  4. * @author: xaboy<365615158@qq.com>
  5. * @day: 2017/11/23
  6. */
  7. namespace service;
  8. use FormBuilder\Form;
  9. class FormBuilder extends Form
  10. {
  11. /**
  12. * 快速创建POST提交表单
  13. * @param $title
  14. * @param array $field
  15. * @param $url
  16. * @param $jscallback $f.submitStatus({loading: false}); 成功按钮状态false
  17. * 1 父级刷新 不能再提交
  18. * 2 父级刷新关闭弹框 不能再提交 成功关闭
  19. * 3 父页面刷新可以重复添加 可以再次提交
  20. * 4 父级不刷新 不能再提交
  21. * 5 父级不刷新 不能再提交 关闭弹窗
  22. * 6 父级不刷新 当前窗口刷新
  23. * str 自定义
  24. * @return $this
  25. */
  26. public static function make_post_form($title,array $field,$url,$jscallback = 2){
  27. $form = Form::create($url);//提交地址
  28. $form->setMethod('POST');//提交方式
  29. $form->components($field);//表单字段
  30. $form->setTitle($title);//表单标题
  31. $js = '';//提交成功不执行任何动作
  32. switch ($jscallback){
  33. case 1:
  34. $js = 'parent.$(".J_iframe:visible")[0].contentWindow.location.reload();';//提交成功父级页面刷新
  35. break;
  36. case 2:
  37. $js = 'parent.$(".J_iframe:visible")[0].contentWindow.location.reload(); setTimeout(function(){parent.layer.close(parent.layer.getFrameIndex(window.name));},2000);';//提交成功父级页面刷新并关闭当前页面
  38. break;
  39. case 3:
  40. $js = 'parent.$(".J_iframe:visible")[0].contentWindow.location.reload();$r.btn.disabled(false);$r.btn.finish();';//提交成功父级页面刷新继续添加
  41. break;
  42. case 4:
  43. $js = '$r.btn.disabled(false);$r.btn.finish();';//提交成功不能再提交
  44. break;
  45. case 5:
  46. $js = '$r.btn.disabled(false);$r.btn.finish();setTimeout(function(){parent.layer.close(parent.layer.getFrameIndex(window.name));},2000);';//父级不刷新 不能再提交 关闭弹窗
  47. break;
  48. case 6:
  49. $js = 'setTimeout(function(){window.location.reload(),2000});';//父级不刷新 当前窗口刷新
  50. break;
  51. default:
  52. $js = $jscallback;
  53. break;
  54. }
  55. $form->setSuccessScript($js);//提交成功执行js
  56. return $form;
  57. }
  58. }