selected apres un submit

Par pege, il y a 10 ans


Bonsoir, donc en faite j'ai mon select qui ressemble a ceci:

$query = "SELECT id, categorie, nom FROM joueurs ORDER BY FIELD(categorie,'Benjamins','Minimes', 'Cadets'), nom"; $categ = ""; echo '<select class="form-control" name="nom1" id="nom1">'; echo "<option value='nom1'>--Nom--</option>"; foreach($pdo->query($query) as $row) { if ($categ != $row->categorie) { // rupture de categorie if ($categ !== "") { // s'il y avait un groupe ouvert, on le ferme echo "</optgroup>"; } echo "<optgroup label='" . $row->categorie . "'>"; $categ = $row->categorie; } if(isset($_POST['submit1'])){ echo "<option value='" . $_POST['nom1'] . " selected'>" . $_POST['nom1'] . "</option>"; }else{ echo "<option value='" . $row->nom . "'>" . $row->nom . "</option>"; } } echo "</optgroup>"; echo "</select>";

Et en faite j'aimerais bien que après mon submit si il y a une erreur sa valeur reste selectionner, mais ca ne marche pas vraiment avec mon petit if, si quelqu'un a une meilleur idée...
Mercid 'avance

3 réponses

pege, il y a 10 ans

Ben tu ne vois pas que j'ai essaye avec le :

if(isset($_POST['submit1'])){ echo "<option value='" . $_POST['nom1'] . " selected'>" . $_POST['nom1'] . "</option>"; }else{ echo "<option value='" . $row->nom . "'>" . $row->nom . "</option>"; }

Mais bon merci

betaWeb, il y a 10 ans

Salut,

Il me semble t'avoir déjà aidé sur le même bout de code il y a quelque semaines.
De plus, je t'invite à faire quelques recherches sur Google, ton problème est simple à résoudre dans l'absolue.

PS @Gynidark +1

connected, il y a 10 ans

Bonjour,

tu dois passer par des variables de session. En gros dans le traitement de ton formulaire :

  • tu stockes tes variables $_POST dans $_SESSION['_post'], ce n'est qu'un exemple (veille à ne pas stocker les mots de passe...)
  • tu fais ton traitement classique avec vérification des données
  • sur ton form tu peux utiliser $_SESSION['_post']['nom1] pour retouver la valeur
  • si tout est ok, une fois qu'il n'y a plus d'erreur tu fais un unset de $_SESSION['_post']

Voilà, bon courage.