企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
1、查询表结构 2、freach循环判断生成字符串 (1)根据字段名判断 (2)根据字段类型判断 (3)下拉、单选、复选框根据注释截取表单title和选项值 (4)其他类型的表单添加表单title 3、生成的字符串,写入html **使用效果** ![在这里插入图片描述](https://img-blog.csdnimg.cn/20201219164302467.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhbmd6aGFl,size_16,color_FFFFFF,t_70) **使用下方类库** ```php <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <link href="http://real.jp893.com/css/layout.css" type="text/css" rel="stylesheet"> <link href="http://real.jp893.com/css/real.css" type="text/css" rel="stylesheet"> <link href="http://real.jp893.com/font/icon.css" type="text/css" rel="stylesheet"> <link href="http://real.jp893.com/css/tag.css" type="text/css" rel="stylesheet"> <title>real</title> </head> <?php // require_once './form.php'; $form=new Form; // $form $name="name"; $value="name"; $annotation="你猜"; echo $form->label("文本框", $form->text( $name, $value, $options = ["s"=>"szz","id"=>"id"])); echo $form->label("开关", $form->switcher( $name, $value, $options = ["s"=>"szz","id"=>"id"])); echo $form->label("密码框", $form->password( $name, $value, $options = ["s"=>"szz","id"=>"id"])); echo $form->label("隐藏框", $form->hidden( $name, $value, $options = ["s"=>"szz","id"=>"id"])); echo $form->label("邮箱框", $form->email( $name, $value, $options = ["s"=>"szz","id"=>"id"])); echo $form->label("链接框", $form->url( $name, $value, $options = ["s"=>"szz","id"=>"id"])); echo $form->label("多行文本框", $form->textarea( $name, $value, $options = ["s"=>"szz","id"=>"id"])); echo $form->label("多行文本框", $form->radio($name, $value = "1=支付宝,2=微信,3=余额", $checked = 2, $options = [])); echo $form->label("多行文本框", $form->checkbox($name, $value = "1=支付宝,2=微信,3=余额", $checked ="2,1", $options = [])); ``` **自动生成表单类库,未完成** ```php <?php // namespace fast; /** * 表单元素生成 * @class Form * @package fast * @method string token() static 生成Token * @method string label(string $name, string $value = null, array $options = []) static label标签 * @method string input($type, $name, string $value = null, array $options = []) static 按类型生成文本框 * @method string text(string $name, string $value = null, array $options = []) static 普通文本框 * @method string password(string $name, array $options = []) static 密码文本框 * @method string hidden(string $name, string $value = null, array $options = []) static 隐藏文本框 * @method string email(string $name, string $value = null, array $options = []) static Email文本框 * @method string url(string $name, string $value = null, array $options = []) static URL文本框 * @method string file(string $name, array $options = []) static 文件上传组件 * @method string textarea(string $name, string $value = null, array $options = []) static 多行文本框 * @method string editor(string $name, string $value = null, array $options = []) static 富文本编辑器 * @method string select(string $name, array $list = [], string $selected = null, array $options = []) static 下拉列表组件 * @method string selects(string $name, array $list = [], string $selected = null, array $options = []) static 下拉列表组件(多选) * @method string selectpicker(string $name, array $list = [], string $selected = null, array $options = []) static 下拉列表组件(友好) * @method string selectpickers(string $name, array $list = [], string $selected = null, array $options = []) static 下拉列表组件(友好)(多选) * @method string selectpage(string $name, string $value, string $url, string $field = null, string $primaryKey = null, array $options = []) static 动态下拉列表组件 * @method string selectpages(string $name, string $value, string $url, string $field = null, string $primaryKey = null, array $options = []) static 动态下拉列表组件(多选) * @method string citypicker(string $name, string $value, array $options = []) static 城市选择组件 * @method string switcher(string $name, string $value, array $options = []) static 切换组件 * @method string datepicker(string $name, string $value, array $options = []) static 日期选择组件 * @method string timepicker(string $name, string $value, array $options = []) static 时间选择组件 * @method string datetimepicker(string $name, string $value, array $options = []) static 日期时间选择组件 * @method string daterange(string $name, string $value, array $options = []) static 日期区间组件 * @method string timerange(string $name, string $value, array $options = []) static 时间区间组件 * @method string datetimerange(string $name, string $value, array $options = []) static 日期时间区间组件 * @method string fieldlist(string $name, string $value, string $title = null, string $template = null, array $options = []) static 字段列表组件 * @method string cxselect(string $url, array $names = [], array $values = [], array $options = []) static 联动组件 * @method string selectRange(string $name, string $begin, string $end, string $selected = null, array $options = []) static 选择数字区间 * @method string selectYear(string $name, string $begin, string $end, string $selected = null, array $options = []) static 选择年 * @method string selectMonth(string $name, string $selected = null, array $options = [], string $format = '%m') static 选择月 * @method string checkbox(string $name, string $value = '1', string $checked = null, array $options = []) static 单个复选框 * @method string checkboxs(string $name, array $list = [], string $checked = null, array $options = []) static 一组复选框 * @method string radio(string $name, string $value = null, string $checked = null, array $options = [])) static 单个单选框 * @method string radios(string $name, array $list = [], string $checked = null, array $options = [])) static 一组单选框 * @method string image(string $name = null, string $value, array $inputAttr = [], array $uploadAttr = [], array $chooseAttr = [], array $previewAttr = []) static 上传图片组件 * @method string images(string $name = null, string $value, array $inputAttr = [], array $uploadAttr = [], array $chooseAttr = [], array $previewAttr = []) static 上传图片组件(多图)) * @method string upload(string $name = null, string $value, array $inputAttr = [], array $uploadAttr = [], array $chooseAttr = [], array $previewAttr = []) static 上传文件组件 * @method string uploads(string $name = null, string $value, array $inputAttr = [], array $uploadAttr = [], array $chooseAttr = [], array $previewAttr = []) static 上传文件组件(多文件)) * @method string button(string $value = null, array $options = []) static 表单button */ /** * * 表单元素生成 * @from https://github.com/illuminate/html * @package fast */ class Form { //生成form行 public $label_template ='<div class="real-row"> <div class="real-col-4" style="line-height: 34px;"> {annotation} </div> <div class="real-col-20 " > {input}</div> </div>'; //普通文本框 public $text_template = '<input class="real-input real-round" type="text" name="{name}" value="{value}" {options} >'; //密码文本框 public $password_template = '<input class="real-input real-round" type="password" name="{name}" value="{value}" {options} >'; //隐藏文本框 public $hidden_template = '<input type="hidden" name="{name}" value="{value}" {options} >'; //邮箱文本框 public $email_template = '<input class="real-input real-round" type="emal" name="{name}" value="{value}" {options} >'; //链接文本框 public $url_template = '<input class="real-input real-round" type="url" name="{name}" value="{value}" {options} >'; // 生成switch组件 开关 public $switcher_template = '<input class="real-switch real-onoff" type="checkbox" name="{name}" value="{value}" {options} >'; //多行文本框 public $textarea_template = '<textarea class="real-text real-ful" name="{name}" {options} >{value}</textarea>'; //富文本编辑器 public $editor_template = ""; //滑块 public $slider_template = ""; //下拉单选 public $select_template = ""; //下拉多选 public $selects_template = ""; //动态下拉单选 public $selectpage_template = ""; //动态下拉多选 public $selectpages_template = ""; // 生成联动下拉列表 public $cxselect_template = ""; //单选 public $radio_template = '<span class="real-radio real-blue"> <label> <input type="radio" name="{name}" value="{value}" {options} ><em></em> <span>{annotations}</span> </label> </span>'; public $checkbox_template = '<span class="real-checkbox"> <label> <input type="checkbox" name="{name}[]" value="{value}" {options}><em></em> <span>{annotations}</span> </label> </span>'; public $image_template = ""; public $images_template = ""; public $upload_template = ""; public $uploads_template = ""; /** * 设置是否转义 * 获取转义编码后的值 * 生成Token */ /* * 生成Label标签 * * @param string $name * @param string $value * @param array $options * @return string */ public function label($annotation, $input) { $str=str_replace('{annotation}',$annotation,$this->label_template); // var_dump($str,$annotation,$input);die; $str=str_replace('{input}',$input,$str); return $str; } /** * 替换模板 * * @param string $name * @param string $value * @param array $options * @return string */ public function template($name, $value, $options = [],$temp) { //打开这个模板 // $tempdata=fopen("test.html","r"); //读取模板中的内容 // $str=fread($tempdata,filesize("test.html")); //替换模板中的内容 $str=str_replace('{name}',$name,$temp); $str=str_replace('{value}',$value,$str); $stroptions=""; foreach ($options as $key =>$val ) { $stroptions.= ' '.$key.'="'.$val.'" '; // code... } // var_dump();die; $str=str_replace('{options}', $stroptions ,$str); // var_dump($str,$text_template);die; return $str; } /** * 生成普通文本框 * * @param string $name * @param string $value * @param array $options * @return string */ public function text($name, $value = null, $options = []) { // var_dump($str,$text_template);die; return $this->template($name, $value, $options = [],$this->text_template); } /** * 生成密码文本框 * * @param string $name * @param array $options * @return string */ public function password($name,$value = null, $options = []) { //替换模板中的内容 return $this->template($name, $value, $options = [],$this->password_template); } /** * 生成隐藏文本框 * * @param string $name * @param string $value * @param array $options * @return string */ public function hidden($name, $value = null, $options = []) { return $this->template($name, $value, $options = [],$this->hidden_template); } /** * 生成Email文本框 * * @param string $name * @param string $value * @param array $options * @return string */ public function email($name, $value = null, $options = []) { return $this->template($name, $value, $options = [],$this->email_template); } /** * 生成URL文本框 * * @param string $name * @param string $value * @param array $options * @return string */ public function url($name, $value = null, $options = []) { return $this->template($name, $value, $options = [],$this->url_template); } /** * 生成switch组件 * * @param string $name * @param mixed $value * @param array $options * @return string */ public function switcher($name, $value, $options = []) { if ($checked) { $options['checked'] = 'checked'; } return $this->template($name, $value, $options = [],$this->switcher_template); } /** * 生成多行文本框 * * @param string $name * @param string $value * @param array $options * @return string */ public function textarea($name, $value = null, $options = []) { return $this->template($name, $value, $options = [],$this->textarea_template); } /** * 生成富文本编辑器 * * @param string $name * @param string $value * @param array $options * @return string */ public function editor($name, $value = null, $options = []) {} /** * 生成滑块 * * @param string $name * @param string $min * @param string $max * @param string $step * @param string $value * @param array $options * @return string */ public function slider($name, $min, $max, $step, $value = null, $options = []) {} /** * 生成下拉列表框 * * @param string $name * @param array $list * @param mixed $selected * @param array $options * @return string */ public function select($name, $list = [], $selected = null, $options = []) { } /** * 下拉列表(多选) * * @param string $name * @param array $list * @param mixed $selected * @param array $options * @return string */ public function selects($name, $list = [], $selected = null, $options = []) {} /** * 生成动态下拉列表 * * @param string $name 名称 * @param mixed $value * @param string $url 数据源地址 * @param string $field 显示的字段名称,默认为name * @param string $primaryKey 主键,数据库中保存的值,默认为id * @param array $options * @return string */ public function selectpage($name, $value, $url, $field = null, $primaryKey = null, $options = []) {} /** * 生成动态下拉列表(复选) * * @param string $name 名称 * @param mixed $value * @param string $url 数据源地址 * @param string $field 显示的字段名称,默认为name * @param string $primaryKey 主键,数据库中保存的值,默认为id * @param array $options * @return string */ public function selectpages($name, $value, $url, $field = null, $primaryKey = null, $options = []) {} /** * 生成联动下拉列表 * * @param string $url 联动获取数据源的URL地址 * @param array $names 联动字段名称 * @param array $values 联动字段默认选中的值 * @param array $options 扩展属性 * @return string */ public function cxselect($url, $names = [], $values = [], $options = []) {} /** * 日期选择器 * 时间选择器 * 日期时间选择器 * 日期区间 * 时间区间 * 日期时间区间 * 根据传递的值生成option */ /** * 生成复选按钮 * * @param string $name * @param mixed $value * @param bool $checked * @param array $options * @return string */ public function checkbox($name, $value = null, $checked = null, $options = []) { $str=""; if ($checked) { $options['checked'] = 'checked'; } $values=explode(",",$value); foreach ($values as $key => $val) { $exp=explode("=",$val); // var_dump($checkedz); if(!empty($checked)){ $checkedz=explode(",",$checked); if (in_array($exp[0],$checkedz)) { $options['checked'] = 'checked'; }else{ unset($options['checked'] ) ; } }else{ unset($options['checked'] ) ; } $radio_template= str_replace('{annotations}', $exp[1] ,$this->checkbox_template); $str.= $this->template($name, $exp[0], $options ,$radio_template); } return $str; } /** * 生成单选按钮 * * @param string $name * @param mixed $value * @param bool $checked * @param array $options * @return string */ public function radio($name, $value = null, $checked = null, $options = []) { $str=""; if ($checked) { $options['checked'] = 'checked'; } $values=explode(",",$value); foreach ($values as $key => $val) { $exp=explode("=",$val); // echo "a".$checked; if ($checked==$exp[0]) { $options['checked'] = 'checked'; }else{ unset($options['checked'] ) ; } $radio_template= str_replace('{annotations}', $exp[1] ,$this->radio_template); $str.= $this->template($name, $exp[0], $options ,$radio_template); } return $str; // radio_template } /** * 生成上传图片组件(单图) * * @param string $name * @param string $value * @param array $inputAttr * @param array $uploadAttr * @param array $chooseAttr * @param array $previewAttr * @return string */ public function image($name = null, $value, $inputAttr = [], $uploadAttr = [], $chooseAttr = [], $previewAttr = []) {} /** * 生成上传图片组件(多图) * * @param string $name * @param string $value * @param array $inputAttr * @param array $uploadAttr * @param array $chooseAttr * @param array $previewAttr * @return string */ public function images($name = null, $value, $inputAttr = [], $uploadAttr = [], $chooseAttr = [], $previewAttr = []) {} /** * 生成上传文件组件(单文件) * * @param string $name * @param string $value * @param array $inputAttr * @param array $uploadAttr * @param array $chooseAttr * @param array $previewAttr * @return string */ public function upload($name = null, $value, $inputAttr = [], $uploadAttr = [], $chooseAttr = [], $previewAttr = []) {} /** * 生成上传文件组件(多文件) * * @param string $name * @param string $value * @param array $inputAttr * @param array $uploadAttr * @param array $chooseAttr * @param array $previewAttr * @return string */ public function uploads($name = null, $value, $inputAttr = [], $uploadAttr = [], $chooseAttr = [], $previewAttr = []) {} /** * 生成一个按钮 * * @param string $value * @param array $options * @return string */ public function button($value = null, $options = []) {} } ``` <br> --- 程序员交流qq群:782974737 [点击加入](https://jq.qq.com/?_wv=1027&k=5eeinSn)