Garder la sélection sur une option après validation formulaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Garder la sélection sur une option après validation formulaire

Re: Garder la sélection sur une option après validation formulaire

par cris84 » 05 janv. 2019, 20:55

Oui effectivement c'est mieux en faisant une boucle.
le formulaire disparaît quand je valide la recherche. Le champ ville est affiché avec javascript quand on sélectionne le département.
Y a-t-il un moyen de le laissé affiché ?

$idd = isset($_GET['idd']) ? $_GET['idd'] : false;

			if(false !== $idd)
{		
		   $rech_ville = $bdd->query("SELECT id_ville, ville, cp FROM ville WHERE id_departement = ". $idd ." ORDER BY id_ville"); ?>   
		   <select name="id_ville" class="form-control">
   					<option value="">--- S&eacute;l&eacute;ctionnez la ville ---</option>
		   <?php
		   
		    while($ligne = $rech_ville->fetch())
			{ ?>
			<option value="<?= $ligne['id_ville'];?>" <?php
			if (isset($_GET['id_ville'])) { 
            if ($ligne['id_ville'] == $_GET['id_ville']) {
                echo 'selected="selected"';
				
           } 
        } 
		?>><?= utf8_encode($ligne['ville']);?> (<?= $ligne['cp'];?>)</option>
			
			<?php
			}
			}
			?>
			</select>

Re: Garder la sélection sur une option après validation formulaire

par or 1 » 05 janv. 2019, 18:36

$liste .= "<option .....";
if (isset($_GET['ville'])) {
if ($code_ville[$d] == $_GET['ville']) {
$liste .= 'selected="selected"';
}
}
$liste .= ".....</option>";

à noter que faire une boucle pour mettre les données dans un tableau puis parcourir ce tableau pour mettre les données dans $liste puis afficher $liste, est mille fois plus compliqué que d'afficher les données dans le premier while de parcours des résultats de la requete.

Re: Garder la sélection sur une option après validation formulaire

par cris84 » 05 janv. 2019, 17:57

Malheureusement malgré mais recherches, je ne vois pas comment faire et d'ailleurs je ne suis certain que ce soit possible.
Je sais que ça plait pas trop mais je met le code en entier. L'affichage se fait via javascript, quand on sélectionne le département le bloc villes s'affiche.
Moi je voudrais que le bloc ville reste affiché avec la ville sélectionnée après validation du formulaire. C'est pour ça que je comptais ajouter "selected"

$idd = isset($_GET['idd']) ? $_GET['idd'] : false;

			if(false !== $idd)
{

		
		   $rech_ville = $bdd->query("SELECT id_ville, ville, cp FROM ville WHERE id_departement = ". $idd ." ORDER BY id_ville");
		    $nd = 0;

		    $code_ville = array();

		    $nom_ville = array();
		    while(false != ($ligne_ville = $rech_ville->fetch()))
    {
  
		      $code_ville[] = $ligne_ville['id_ville'];

       			 $nom_ville[]  = $ligne_ville['ville'];
				 $cp_ville[]  = $ligne_ville['cp'];
  
			      $nd++;
    }
				  $liste = "";
				 
				   $liste .= '<select name="id_ville" class="form-control" id="ville">'."\n";
   					$liste.='<option value="">--- S&eacute;l&eacute;ctionnez la ville ---</option>';
					 for($d = 0; $d < $nd; $d++)
    {
  
					      $liste .= '  <option value="'. $code_ville[$d] .'">'. utf8_encode($nom_ville[$d]) .' ('. $cp_ville[$d] .')</option>'."\n";
    }

					 $liste .= '</select>'."\n";
					   $rech_ville->closeCursor();
  
				  echo($liste);

							}

Existe-t-il une solution ?

Re: Garder la sélection sur une option après validation formulaire

par @rthur » 01 janv. 2019, 22:53

Bonjour,

Repars du HTML, que dois-tu obtenir au final ?

Une fois que tu sais ce que tu veux obtenir, il te suffit d'avoir une variable PHP au niveau de la construction de ta balise <option> dans laquelle tu mets 'selected="selected"' si c'est l'option que tu veux sélectionner ou dans lequel tu ne mets rien si tu ne veux pas la sélectionner

Garder la sélection sur une option après validation formulaire

par cris84 » 30 déc. 2018, 16:26

Bonjour à tous,

je voudrais garder la sélection de mon choix après validation du formulaire. J'ai du mal car le code que j'utilise est en php et je n'arrive pas faire cette sélection :

$liste .= '  <option value="'. $code_ville[$d] .'">'. utf8_encode($nom_ville[$d]) .' ('. $cp_ville[$d] .')</option>'."\n";
voici ce que je veut insérer :
 if (isset($_GET['ville'])) {
            if ($code_ville[$d] == $_GET['ville']) {
                echo 'selected="selected"';
            }
        }

Merci de votre aide :)