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 :

Form selected dans un while qui affiche toute les choix en selected


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    mai 2020
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : mai 2020
    Messages : 18
    Points : 12
    Points
    12
    Par défaut Form selected dans un while qui affiche toute les choix en selected
    Bonjour a vous a nouveau

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $manufacturerValue = $_GET['manufacturers'];
                        $sql_manufacturers = "SELECT * FROM manufacturers";
                        $result_manufacturers  = $conn->query($sql_manufacturers);
                        echo "<select style=\"width: 200px;\" id=\"manufacturers\" name=\"location\" onchange=\"window.location='index.php?manufacturers='+this.value;\">";
                        while ($row_manufacturers  = mysqli_fetch_assoc($result_manufacturers)) {
                            echo "<option selected=\"selected\" value=".$manufacturerValue.">".$row_manufacturers['manufacturers_name']."</option>";
                        }
                        echo "</select>";
                        echo " ";
    Dans mon champ SQL manufacturers] j'ai une belle grande liste de choix, par contre dans se code ils sont toute en selected et donc il affiche seulement le dernier de mon champ SQL.



    Dans un autre essai échoué aussi quand la valeur du $_GET est activée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $manufacturerValue = $_GET['manufacturers'];
                            $sql_manufacturers = "SELECT * FROM manufacturers WHERE manufacturers_value = '".$_GET['manufacturers']."' ";
                            $result_manufacturers  = $conn->query($sql_manufacturers);
                            echo "<select style=\"width: 200px;\" id=\"manufacturers\" name=\"location\" onchange=\"window.location='index.php?manufacturers='+this.value;\">";
                            $row_manufacturers  = mysqli_fetch_assoc($result_manufacturers);
                            echo "<option selected=\"selected\" value=".$row_manufacturers['manufacturers_value'].">".$row_manufacturers['manufacturers_name']."</option>";
                            echo "</select>";
                            echo " ";
    cela fonctionne a moitié le bon champ de la SQL est bien sélectionné mais plus rien d'autre est affiché dans la liste

    Merci encore pour votre aide.

  2. #2
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    octobre 2006
    Messages
    8 987
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : octobre 2006
    Messages : 8 987
    Points : 4 374
    Points
    4 374
    Billets dans le blog
    1
    Par défaut
    Le comportement du premier code est normal. Pourquoi tu mets tous les champs en selected ?

    Dans le deuxième code, il semble manquer un while ligne 5...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    mai 2020
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : mai 2020
    Messages : 18
    Points : 12
    Points
    12
    Par défaut j'ai testé les 2
    Le premier il fonctionne mais oui effectivement dans le while il met toutes les champs en selected, mais comment avoir seulement le champs qui provient du $manufacturerValue seulement.

    Merci a l'avance

  4. #4
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    octobre 2006
    Messages
    8 987
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : octobre 2006
    Messages : 8 987
    Points : 4 374
    Points
    4 374
    Billets dans le blog
    1
    Par défaut
    Le "il met" veut dire que le code n'est pas de toi ?

    J'y connais rien, mais on peut-être retirer tous les selected gênants en javascript (manipulation du DOM).
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  5. #5
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    mai 2020
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : mai 2020
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    il met "le while"

    je vais voir d'une autre methode en while ca marche pas,

  6. #6
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    octobre 2006
    Messages
    8 987
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : octobre 2006
    Messages : 8 987
    Points : 4 374
    Points
    4 374
    Billets dans le blog
    1
    Par défaut
    c'est qui "il" ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  7. #7
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    mai 2020
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : mai 2020
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    il = le while

    "il met toutes les champs" ou si t'aime mieux ->*"le while met toutes les champs"

  8. #8
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    octobre 2006
    Messages
    8 987
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : octobre 2006
    Messages : 8 987
    Points : 4 374
    Points
    4 374
    Billets dans le blog
    1
    Par défaut
    Je comprends pas ; tu dis que le while met les champs en selected...Si tu as la main sur le code, il suffit de ne pas les mettre
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  9. #9
    Modérateur

    Homme Profil pro
    Inscrit en
    janvier 2007
    Messages
    1 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : janvier 2007
    Messages : 1 718
    Points : 5 459
    Points
    5 459
    Par défaut
    Bonjour,

    Il serait intéressant de connaître quelles sont les colonnes de ta table manufacturers.
    'manufacturers_name' étant le libellé, tu dois avoir un code associé.
    C'est celui-là que tu dois placer dans le value de chaque balise <option ... dans ton while
    et Comparer ce code provenant de ta base de données avec le $_GET['manufacturers'].
    S'ils sont égaux dans ce cas tu positionne ton <option a selected.

    Bon code
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    mai 2020
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : mai 2020
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    Oui j'utilise une valeur unique pour manufacturers_id (int 5 unique) et manufacturers_value (int 5 valeur du form option)

  11. #11
    Modérateur

    Homme Profil pro
    Inscrit en
    janvier 2007
    Messages
    1 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : janvier 2007
    Messages : 1 718
    Points : 5 459
    Points
    5 459
    Par défaut
    Dans ton premier code, il faut mettre l'id dans value et afficher le libellé comme tu le fais.
    Il suffit de comparer l'id avec le contenu de ton get pour alors positionner l'option avec le selected. Tu peux le faire avec l'opérateur ternaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print_r("<option ".(($row_manufacturers['manufacturers_id'] == $_GET['manufacturers']) ? " selected='selected' " : "")." value='".$row_manufacturers['manufacturers_id']."'>".$row_manufacturers['manufacturers_name']."</option>");
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

Discussions similaires

  1. Réponses: 8
    Dernier message: 07/06/2009, 21h31
  2. afficher tout les divs qui ont leurs id commence par la chaine "select"
    Par karimphp dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 04/01/2008, 16h27
  3. Images dans mon site qui deforment tout
    Par warrendc dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 26/06/2006, 15h32

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