2016-05-05 3 views
0

J'ai besoin d'aide pour la validation de formulaire. Je peux le faire fonctionner avec des boîtes de texte, mais j'ai de la difficulté à valider les listes déroulantes.Validation du formulaire PHP déroulant, afficher "requis" si l'utilisateur n'a pas d'entrée. Empêcher la réinitialisation de la valeur de la liste déroulante

J'ai inclus une partie de mon code php ainsi que le code qui est intégré dans le code HTML

Je ne parviens pas à afficher le texte nécessaire à côté de la liste déroulante. De même, comment afficher l'option sélectionnée par l'utilisateur si l'utilisateur oublie d'entrer une entrée ailleurs sur le formulaire afin de ne pas réinitialiser le champ déroulant et montrer ce que l'utilisateur avait déjà sélectionné.

<?php  
if(empty($_POST['title'])) 
      { 
       $errors['title1'] = " Required"; 
      } 
    <p> 

?> 
     <label for="title" class="label"><font color="#040404">Title:</font></label> 
         <select name="title"> 
          <option value="" selected="selected">Select title</option> 
          <option value ="Mr">Mr</option> 
          <option value ="Mrs">Mrs</option> 
          <option value="Ms">Ms</option> 
          <option value="Miss">Miss</option> 
          <option value="Dr">Dr</option> 
          </select>     

    </p> 
+0

Si vous utilisez PHP pour la validation de formulaire, c'est un peu plus difficile. Si vous utilisez (par exemple) jQuery pour la validation de formulaire, si quelque chose de requis n'a pas été rempli, alors le formulaire ne sera pas envoyé, donc il ne devrait pas réinitialiser la liste déroulante. –

+0

Bien sûr, vous "devez" utiliser la validation à la fois sur le frontal et sur le côté serveur. Pour éviter la réinitialisation du formulaire, empêchez le navigateur de soumettre si un champ n'a pas été rempli/sélectionné. –

+0

Je dois le faire pour mon projet senior et son échéance demain et je suis bloqué pour faire fonctionner le menu déroulant comme le fait la zone de texte. –

Répondre

0

Voici une autre approche, qui suppose que votre page se charge dans et si le sélectionnez « titre » a soit une sélection ou non. Encore une fois, c'est juste une suggestion à essayer.

<select name="title"> 
<?php 
    $titles = array ('Mr', 'Mrs', 'Ms', 'Miss', 'Dr'); 
    if (isset($_POST['title'])) { 
     echo '<option value="">Select title</option>'; 
     $use_title = $_POST['title']; 
    } else { 
     // Selection not made, let "Select title" be selected. 
     echo '<option value="" selected="selected">Select title</option>'; 
     $use_title = ""; 
    } 

    //When selected before, it will append the selected attribute. 
    foreach ($titles as $ti) { 
     $selected_attr = ($ti == $use_title ? ' selected="selected"' : ''); 
     echo sprintf(
      '<option value="%s"%s>%s</option>' 
      $ti, 
      $selected_attr 
      $ti, 
     ); 
    } 
?> 
</select>