form.inc.php 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. function box($field, $value, $fieldinfo) {
  2. $string = '';
  3. $require = $fieldinfo['min_length'] ? 'required required_box' : '';
  4. $pattern = $fieldinfo['pattern'] ?$fieldinfo['pattern']:'';
  5. $errortips = $fieldinfo['error_tips'] ?$fieldinfo['error_tips']:'';
  6. if($value=='') $value = !empty($fieldinfo['default_value'])?$fieldinfo['default_value']:'';
  7. $options = isset($fieldinfo['options'])?explode("\n",$fieldinfo['options']):array();
  8. if(!empty($options))foreach($options as $_k) {
  9. $v = explode("|",$_k);
  10. if(!empty($v[0])){
  11. $k = trim($v[1]);
  12. $optionList[$k] = $v[0];
  13. }
  14. }
  15. //去除空内容
  16. $values = explode(',',$value);
  17. $value = array();
  18. if(!empty($values))foreach($values as $_k) {
  19. if($_k != '') $value[] = $_k;
  20. }
  21. $value = implode(',',$value);
  22. $string = '<div class="mb-3 row '.$require.'" data-pattern = "'.$pattern.'" data-errtips = "'.$errortips.'" data-boxtype="'.$fieldinfo['box_type'].'" data-name="'.(in_array($fieldinfo['box_type'],['multiple','checkbox'])?"info[$field][]":"info[$field]").'">';
  23. $string .= '<label class="col-md-2 col-form-label">'.$fieldinfo['name'].'</label>';
  24. if(isset($optionList)&&isset($fieldinfo['box_type']))switch($fieldinfo['box_type']) {
  25. case 'radio':
  26. $string .= FormElements::radio($optionList,$value,"name='info[$field]' $fieldinfo[form_attribute] class='form-check-input' ",0);
  27. $string .= $fieldinfo['tips']?'<div class="text-muted input-word-aux offset-l-2">提示:'.$fieldinfo['tips'].'</div>':'';
  28. break;
  29. case 'checkbox':
  30. $string .= FormElements::checkbox($optionList,$value,"name='info[$field][]' $fieldinfo[form_attribute] class='form-check-input' ",0);
  31. $string .= $fieldinfo['tips']?'<div class="text-muted input-word-aux offset-l-2">提示:'.$fieldinfo['tips'].'</div>':'';
  32. break;
  33. case 'select':
  34. $string .= '<div class="col-md-10">';
  35. $string .= FormElements::select($optionList,$value,Yii::t('admin','please select'),"name='info[$field]' id='$field' $fieldinfo[form_attribute] data-dselect-clearable='true' class='form-select $require'");
  36. $string .= $fieldinfo['tips']?'<div class="text-muted input-word-aux">提示:'.$fieldinfo['tips'].'</div>':'';
  37. $string .= '</div>';
  38. break;
  39. case 'multiple':
  40. $string .= '<div class="col-md-10">';
  41. $string .= FormElements::select($optionList,$value,Yii::t('admin','please select'),"name='info[$field][]' id='$field' multiple='multiple' data-dselect-clearable='true' class='form-select $require'");
  42. $string .= $fieldinfo['tips']?'<div class="text-muted input-word-aux">提示:'.$fieldinfo['tips'].'</div>':'';
  43. $string .= '</div>';
  44. break;
  45. case 'switch':
  46. $string .= FormElements::switchbox($optionList,$value,"name='info[$field]' $fieldinfo[form_attribute] class='form-check-input' ",$field);
  47. $string .= $fieldinfo['tips']?'<div class="text-muted input-word-aux offset-l-2">提示:'.$fieldinfo['tips'].'</div>':'';
  48. break;
  49. }
  50. $string .= '</div>';
  51. return $string;
  52. }