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 :

[Tableaux] Récupérer un tableau à partir de valeurs d'un <select> multiple [Fait]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de JFKen
    Profil pro
    Inscrit en
    Février 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 81
    Par défaut [Tableaux] Récupérer un tableau à partir de valeurs d'un <select> multiple
    Bonjour à tous,

    Voici mon soucis :

    Je désire récuperer un tableau contenant les valeurs d'une ComboBox de type multiple dans laquelle se trouve une ou plusieurs valeurs.

    Juste avant l'envoi, une fonction JAVASCRIPT me séléctionne tout les élments de cette combo, donc les valeurs ont (théoriquement) bien envoyée par POST.

    Malheuresement, je me retrouve sur ma page de récéption avec ce message d'erreur :
    Notice: Undefined index: MaCombo in c:\program files\easyphp1-8\www\MonDossier\PageReception.php on line 17
    et ce quelle que soit la maniere que j'ai pu tester.

    Voilà le code en question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    //Premiere page où se trouve ma Combo
    
    echo '<SELECT name = "MaCombo" multiple size = 2></SELECT><br><br>'
    
    //j'effectue un envoi POST, MaCombo contient admettons 3 valeurs séléctionées
    
    ********************************************************************
    
    //Page de récéption, j'ai tésté tout ça :
    
    $MesChoix= $_POST["MaCombo"];
    
    $MesChoix[]= $_POST["MaCombo[]"];
    
    $MesChoix[]= $_POST["MaCombo"];
    
    echo $MesChoix[1];
    echo $MesChoix;
    echo;
    $_POST["MaCombo[1]"]
    Impossible de trouver la solution malgré mes recherches....
    Avez vous une idée du probleme ? Est-ce le fait que j'utilise une ComboBox multiple ?

    merci à vous !

  2. #2
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 516
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 516
    Par défaut
    Dans le name de ton select il faut placer des crochets.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <select name="MaCombo[]">
    ....
    </select>
    coté php "MaCombo" sera un tableau, tu pourras donc faire ceci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $nbElement = count($_POST['MaCombo']);
    for($k=0;$k<$nbElement;$k++)echo $_POST['MaCombo'][$i];

  3. #3
    Membre confirmé Avatar de JFKen
    Profil pro
    Inscrit en
    Février 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 81
    Par défaut
    Merci à toi pour ta réponse !!

    Malheursement, le fait d'ajouter des crochets dans la nomination de mon SELECT me genere des erreurs dans JavaScript, de type Error Syntax sur ces crochets.

    Et donc mes fonctions JAVA ne fonctionnent plus...

    Edit : si je rajoutes mes crochets dans tout mon document, java me sort cette erreur se synthaxe, si je ne met les crochets uniquement lorsque je crée mon SELECT, java ne reconnait plus le contrôle MaCombo sur le formulaire...

  4. #4
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 516
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 516
    Par défaut
    Effectivement ça pose problème dans le name alors identifie tes élément via l'attribut id="MonCombo" name="MonCombo[]" pour atteindre ton élément tu fais document.getElementById("MonCombo").value;

  5. #5
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    Si si, c'est bien la bonne méthode. J'en ai mis des exemples ici : Les formulaires et PHP 5
    Souviens-toi que Java et JavaScript ne sont pas la même chose.

  6. #6
    Membre confirmé Avatar de JFKen
    Profil pro
    Inscrit en
    Février 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 81
    Par défaut
    Oui, pour la difference JavaScript et Java je connais.
    Je ne connaissais pas l'attribut ID, je testarais !! Je pense que ça ira, merci à toi !!

    Merci à vous !

  7. #7
    Membre confirmé Avatar de JFKen
    Profil pro
    Inscrit en
    Février 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 81
    Par défaut
    Bon je n'arrive toujours pas à récupérer ce fichu tableau. Par contre l'attribut "id" dans la création du SELECT avec le nom sans les crochets fonctionne, Javascript arrive a travailler sans problemes avec, le script JS me séléctionne bien les éléments de MaCombo avant envoi. Je n'ai pas d'ereur JavaScript par contre un avertissement

    PHP m'affiche toujours la même erreur avec l'index non défini:
    Notice: Undefined index: MaCombo in c:\program files\easyphp1-8\www\MonDossier\MaPageDeReception.php on line 17


    Et voici l'avertissement de la console JavaScript :
    Avertissement : Le formulaire contient un champ d'entrée de fichier, mais ne spécifie pas la méthode POST et l'encodage « multipart/form-data ». Le fichier ne sera pas envoyé.


    Je suis paumé, je vois pas où ça peut bloquer....
    En reception j'ai testé
    * echo $_POST["MaCombo"]; (histoire de voir s'i m'affiche "Array")
    * echo $_POST["MaCombo[]";
    * echo $_POST["CompChoix[2]"];

    Rien a faire, message d'erreur identique. Par contre un count($_POST["MaCombo"]); me retourne zéro

    J'en perd mon latin !!!

    Si vous voyez d'où peut venir mon soucis, je pencherais pour un probleme du coté de mon script JavaScript vu l'avertissement....

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

Discussions similaires

  1. [Tableaux] Faire un tableau à partir d'une string
    Par hugo69 dans le forum Langage
    Réponses: 2
    Dernier message: 05/01/2007, 11h49
  2. Réponses: 2
    Dernier message: 15/12/2006, 15h22
  3. [Tableaux] récupérer un tableau de valeur
    Par PAYASS59 dans le forum Langage
    Réponses: 7
    Dernier message: 16/02/2006, 13h22
  4. [Tableaux] récupérer un tableau sur une autre page
    Par samsso2005 dans le forum Langage
    Réponses: 3
    Dernier message: 27/01/2006, 23h58
  5. [Tableaux] Coloriser un tableau à partir de mon code
    Par pod1978 dans le forum Langage
    Réponses: 3
    Dernier message: 10/11/2005, 17h25

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