关于php:如何使用字段名称和字段类型显示用户从表单构建器中选择的最后一个字段?

How to display the last field which is user selected from form builder with the field name and field type?

我正在制作表单构建器,并且我有一个输入字段,称为名字、姓氏、电子邮件、同意。无论用户从表单构建器页面选择字段,单击按钮后所有元素都将存储在数据库中。

就像我从我的表单构建器页面中选择元素 Firstname、Lastname、Email 和 iagree 并保存它一样。在数据库中,它将像下面的示例一样存储
enter

1
 SELECT form_id,form_elements,form_builder_type, update_date FROM `form_builder` WHERE form_id=1 AND form_builder_type='example' ORDER BY update_date DESC LIMIT 1

上述查询的输出

enter

enter

1
2
3
$inst_id=1;
    $result['data']=$this->formbuilder_Model->check_example_form_builder_fields($inst_id);
     $this->load->view('user-form',$result);//passing elements to the view page

查看

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
foreach ($data as $key) {
 $exp_fields_name=$key->fields_name;
 $exp_fields_type=$key->fields_type;
 $exp_form_elements=$key->form_elements;
  $abc=explode(',',$exp_form_elements);
    foreach ($abc as $value) {
      if ($exp_fields_name == $value) {?>
     
              <label class="col-sm-5 col-form-label"><?php echo $exp_fields_name;?></label>
             
              <input type="<?php echo $exp_fields_type;?>" name="<?php echo $exp_fields_name;?>" placeholder="<?php echo $value;?>" class="form-control" />
               <?php echo form_error($exp_fields_name); ?>
           
           
              <?php
       }}}?>

我需要像

这样的输出

1
2
3
4
5
<label>Lastname</label>
<input type="text" name="lastname">

<label>Email</label>
<input type="email" name="email">

你能帮我解决这个问题吗?


与其将form_elements存储在fom_builder表中,不如存储它们各自的id,然后使用类似这样的查询

SELECT form_elements_id FROM form_builder WHERE form_id=1 AND form_builder_type='example' ORDER BY update_date DESC LIMIT 1

一旦你获得了所有的表单元素,Id 将其内爆并将其转换为数组并使用 whereIn 子句从第二个表中获取数据。