2017-10-10 6 views
0

私はフォームビルダを作っています。私はFirstname、Lastname、Email、Iagreeと呼ばれる入力フィールドを持っています。ユーザーがフォームビルダページからフィールドを選択した場合、ボタンをクリックした後、すべての要素がデータベースに格納されます。フォームビルダーからユーザーが選択した最後のフィールドをフィールド名とフィールドタイプで表示する方法は?

私のフォームビルダページからFirstname、Lastname、Email、およびIagreeという要素を選択して保存しました。データベースでは、次のように格納されます。 enter image description here

今度はフォームビルダを更新し、フォーム要素を変更します。下の画像のように表示されます。私は、フィールド名とを有する第2のテーブルを持っている

enter image description here

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 image description here

フィールドタイプ

enter image description here

フィールドの名前と要素の型を取得するために、両方のテーブルに参加する必要があります。

これで、フォームビルダーの最後の要素をフィールド名とフィールドタイプで表示する必要がありました。私はフィールドタイプの姓と電子メールを表示することを意味します。私はCodeIgniterの、私のコントローラ

$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 

ビュー

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) {?> 
     <div class="form-group row label-capitals"> 
       <label class="col-sm-5 col-form-label"><?php echo $exp_fields_name;?></label> 
       <div class="col-sm-7"> 
       <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); ?> 
      </div> 
      </div> 
       <?php 
     }}}?> 

を使用しています

は私が

<label>Lastname</label> 
<input type="text" name="lastname"> 

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

のような出力は、あなたがこの中で私を助ける必要がありますか?

+0

あなたが最後の要素を得るためにそれを爆発させた後、あなたは 'end($ abc)'を使うことができます...もしそれがあなたが探しているものなら? http://php.net/end – Dale

+0

@Dale、いいえ、入力タイプのビューに表示される要素を選択するユーザーのような出力が必要です。 –

答えて

1

むしろよりfom_builderテーブルにform_elementsを格納する、それぞれのIDを格納し、この

ようなクエリものを使用UPDATE_DATE DESC限界によってform_builder form_id = 1 AND form_builder_type = '例' オーダーから1

をform_elements_id SELECT

すべてのフォーム要素を取得したら、それをimplodeして配列に変換し、whereIn節を使用して2番目の表からデータを取得します。

+0

返事ありがとうMr.Nilesh、しかしあなたの上記のクエリは最後のレコードだけを表示します。私は最後のレコードだけでなく、最初のテーブルのフォーム要素を2番目のテーブルで比較する必要があります –

+0

私は出力、姓、名字を持っています。今私は利用可能な場合は2番目のテーブルで利用可能なフィールドをチェックし、フィールド名とフィールドタイプを表示しなければならない –

関連する問題