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 :

[PHP-JS] <select> crée dynamiquement


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut [PHP-JS] <select> crée dynamiquement
    Bonjour,
    j'ai un petit problème au niveau de la récupération des valeurs de mes "<select>".
    En effet, sur ma page ".php" je crée un "<select>" comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <select id="liste_ecoleorigine_b_0" name="liste_ecoleorigine_b_0" />
    C'est un select simple pas "multiple" et dans une autre page je récupère sa valeur comme ceci : $_POST['liste_ecoleorigine_b_0'].
    Jusqu'ici tout va bien
    Mais j'ai un bouton à côté de se "<select>" qui me permet d'ajouter dynamiquement en javascript autant de "<select>" que je le souhaite.
    Dans une partie de mon javascript je fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var selectNew = document.createElement("select") ;
    selectNew.id = "liste_ecoleorigine_b_"+i ;
    selectNew.name = "liste_ecoleorigine_b_"+i ;
    "i" étant une variable qui s'incrémente toute seule là n'est pas le problème.
    Mon problème est qu'avec Internet Explorer 5 j'arrive à récupérer les valeurs de tous les "<select>" en fesant une boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for ($i = 0; $i < $n ; $i++)
    {
        echo $_POST['liste_ecoleorigine_b_'.$i] ;
    }
    Alors qu'avec Mozilla, le premier (le 0) est bien récupéré mais les valeurs des "<select>" crées dynamiquement (c'est à dire à partir 1 jusqu'à n) ne sont pas récupérées et j'ai droit à un "Notice : Undefined index: liste_ecoleorigine_b_1 in ...".
    Donc pourquoi ça marche sous I.E et pas sous Mozilla d'après vous ?
    Merci pour vos réponses

  2. #2
    Inscrit

    Profil pro
    H4X0|2 @ YourLabs Business Service
    Inscrit en
    Octobre 2006
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : H4X0|2 @ YourLabs Business Service
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 657
    Points : 909
    Points
    909
    Par défaut
    Une boucle dans $_POST devrait vous aider.

  3. #3
    Membre averti Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Points : 434
    Points
    434
    Par défaut
    Bonjour,
    A priori c'est plutot un problème de client que de serveur. Peut-etre que ton vieux mozilla ne fait pas bien tourner ton javascript. Regarde le code source obtenu une fois que tu as rajouté un select dynamiquement. Il y a de forte chance pour que son nom ne soit pas celui auquel tu t'attends... et donc, le formulaire une fois validé, PHP ne trouve pas la variable en question...

    Bon courage,

    Sohnic

  4. #4
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Merci pour vos réponses.
    Une boucle dans $_POST, c'est ce que je fais ici non ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for ($i = 0; $i < $n ; $i++)
    {
        echo $_POST['liste_ecoleorigine_b_'.$i] ;
    }
    Pour ce qui est du code source en fait j'aimerais beaucoup le voir justement pour corriger d'autres problèmes mais je n'arrive à voir que le code source avant la création des autres "<select>". en effet, la page n'étant pas rechargée, le code source que je vois ("bouton droit => afficher la source" ou même en enregistrant la page) ne contient pas les "<select>" crées dynamiquement c'est pour cela que je galère un peu

  5. #5
    Inscrit

    Profil pro
    H4X0|2 @ YourLabs Business Service
    Inscrit en
    Octobre 2006
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : H4X0|2 @ YourLabs Business Service
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 657
    Points : 909
    Points
    909
    Par défaut
    Non je parlais de quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach ($_POST as $key => $value)
    {
      // code
    }
    N'hésitez pas à faire un print_r($_POST) pour débugger.

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/06/2007, 22h53
  2. [PHP-JS] select et checkbox dynamique
    Par kenny.kev dans le forum Langage
    Réponses: 4
    Dernier message: 03/04/2007, 12h14
  3. [PHP-JS] Balises select dynamiques
    Par alliance dans le forum Langage
    Réponses: 2
    Dernier message: 18/08/2006, 13h18
  4. Composant crée dynamiquement & Access in invalid memory
    Par Sunchaser dans le forum C++Builder
    Réponses: 4
    Dernier message: 12/02/2005, 02h03
  5. Réponses: 5
    Dernier message: 12/07/2004, 22h00

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