IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

initialiser un select avec la dernière valeur saisie


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 508
    Billets dans le blog
    1
    Par défaut initialiser un select avec la dernière valeur saisie
    Bonjour,

    j'ai un formulaire qui comporte des select (listes déroulantes). Si l'utilisateur vient pour la première fois, le champ est vide par contre s'il a déjà renseigné ce select puis souhaite modifier son choix en revenant, plutôt que de nouveau lui présenter un champ vide, je voudrais lui présenter le choix qu'il avait effectué puis il a la liste déroulante avec tous les choix ; s'il en choisit un autre puis veut remettre le choix initial, il doit le retrouver dans la liste donc celle-ci doit être complète.

    Voici un exemple de mon code et je voudrais savoir si je m'y prends comme il faut :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <select name="localization">
    <?php
    $query_localization="select distinct localization from machines";
    $qid = $bdd->query($query_localization); 
    ?> 
            <option><?php echo (isset($_POST['localization']))?$_POST['localization']:"";?></option>
    <?php while($row=$qid->fetch(PDO::FETCH_OBJ)) { ?>
    	<option><?php echo $row->localization;?></option>
    <?php } ?>
    </select>

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour Laurent,

    Tu es sérieux ?

    • Tu ne sais plus faire de select ?
    • Ni mettre des value aux options ?
    • Ni selected sur celle sélectionnée ?

    Et en base de données, tu as oublié les id AUTO-INCREMENT ?


  3. #3
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 508
    Billets dans le blog
    1
    Par défaut
    A dire vrai, le value des select me semble optionnel sachant que si on ne le met pas, on obtient comme valeur celle est qui mise entre les 2 balises <option> et </option>. Par contre, pour le selected (que j'avais oublié), je pourrais faire comme ça :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <select name="localization">
    <?php
    $query_localization="select distinct localization from machines";
    $qid = $bdd->query($query_localization); 
    while($row=$qid->fetch(PDO::FETCH_OBJ)) { ?>
    	<option selected=<?php echo (isset($_POST['localization']))?"selected":"";?>><?php echo $row->localization;?></option>
    <?php } ?>
    </select>
    C'est bon ?

    C'est quoi ta remarque au sujet des AUTO_INCREMENT ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    1/ On récupère les données du formulaire :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $localization_recu = ( isset($_POST['localization']) )? $_POST['localization'] : '';
    2/ on TRAITE les données (gestion d'erreur, enregistrement en Bdd......)

    3/ on (ré-)affiche le formulaire :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <select name="localization">
    <?php
    $query_localization="SELECT DISTINCT localization FROM machines";
    $qid = $bdd->query($query_localization); 
    while($row=$qid->fetch(PDO::FETCH_OBJ)) { 
       $selected = ( $localization_recu == $row->localization )? ' selected="selected"' : '';
    ?>
    	<option value="<?php echo htmlspecialchars($row->localization, ENT_QUOTES, 'UTF-8');?>"<?php echo $selected; ?>><?php echo htmlspecialchars($row->localization, ENT_QUOTES, 'UTF-8');?></option>
    <?php } ?>
    </select>
    • Ne pas mettre de value à option est une TRES mauvaise habitude... de grand débutant...
    • utiliser htmlspecialchars() pour afficher les données est une BONNE habitude à prendre...



    4/ AUTO-INCREMENT = UNIQUE
    Quand on a des id(ée), on s'en sert !

    Ca suppose ici que tu as une table "localizations", avec un id_localization (ce qui n'est à priori pas ton cas)
    Au lieu de récupérer "localization" (chaine), on récupère plutôt l'id_localization (ID AUTO-INCREMENT = UNIQUE)
    Mais bon. Ceci est une autre histoire....
    Dernière modification par Invité ; 14/10/2017 à 16h06.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Selection avec répartition des valeurs sur les colonnes
    Par lili31 dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 20/04/2012, 10h16
  2. [AC-2007] dernière valeur saisie
    Par Commandeur dans le forum IHM
    Réponses: 17
    Dernier message: 04/09/2009, 19h16
  3. [AC-2007] Update à partir de la dernière valeur saisie
    Par burgall dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 26/06/2009, 19h45
  4. Select avec Condition et Valeurs Introduites
    Par faressam dans le forum Requêtes et SQL.
    Réponses: 14
    Dernier message: 16/08/2007, 14h50
  5. Réponses: 2
    Dernier message: 31/01/2007, 09h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo