2017-10-10 6 views
0

Je fais le constructeur de formulaire et j'ai un champ d'entrée qui s'appelle comme prénom, nom, email, Iagree. Quel que soit l'utilisateur qui choisit le champ dans la page de création de formulaires, tous les éléments seront stockés dans la base de données après avoir cliqué sur un bouton.Comment afficher le dernier champ sélectionné par l'utilisateur dans le générateur de formulaires avec le nom du champ et le type de champ?

Comme je choisis des éléments Prénom, Nom, Email et iagree de ma page de constructeur de formulaire et l'a sauvé. Dans la base de données, il va stocker comme exemple ci-dessous enter image description here

Maintenant, je mets à jour le constructeur de formulaire et je change les éléments de formulaire. Il affiche comme ci-dessous l'image.

enter image description here

L'utilisation ci-dessous demande que je reçois le dernier enregistrement mis à jour

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 

la sortie de requête ci-dessus

enter image description here

Maintenant, j'ai la deuxième table avec le nom de champ et type de champ

enter image description here

Je dois joindre à la fois la table pour obtenir le nom du champ et le type des éléments.

Maintenant, je dois afficher les derniers éléments du générateur de formulaire avec le nom du champ et le type de champ. Je veux dire qu'il affichera le nom de famille et l'email avec le type de champ.

J'utilise CodeIgniter, mon contrôleur

$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 

Voir

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 
     }}}?> 

je besoin d'une sortie comme

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

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

Est-ce que vous me aider dans ce domaine?

+0

vous pourriez utiliser 'end ($ abc)' après l'avoir explosé pour obtenir le dernier élément ... si c'est ce que vous cherchez? http://php.net/end – Dale

+0

@Dale, Non, j'ai besoin d'une sortie comme n'importe quel utilisateur, sélectionnez les éléments qui s'afficheront dans la vue avec le type d'entrée. –

Répondre

1

Plutôt que de stocker form_elements dans le tableau de fom_builder, stocker leur carte d'identité et ensuite utiliser quelque chose de requête comme ceci

SELECT form_elements_id respectifs DE form_builder OU form_id = 1 ET form_builder_type = ORDER 'exemple' PAR UPDATE_DATE DESC LIMIT 1

Une fois que vous obtenez tous les éléments de formulaire Id implodez-le et convertissez-le en tableau et utilisez la clause whereIn pour obtenir des données de la deuxième table.

+0

Merci pour la réponse Mr.Nilesh, mais votre requête ci-dessus affichera le dernier enregistrement seulement. J'ai besoin de dernier enregistrement ainsi que les éléments de formulaire de la première table devraient comparer dans la deuxième table –

+0

Je veux dire en utilisant votre requête, j'ai eu une sortie, prénom et nom de famille.Maintenant, je dois cocher les champs disponibles ou non dans la seconde table si disponible puis afficher le nom du champ et le type de champ –