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] Récupérer texte d'un select multiple


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Points : 503
    Points
    503
    Par défaut [PHP-JS] Récupérer texte d'un select multiple
    Bonjour,

    Je souhaite savoir comment récupérer le texte entre les balises <option> de mon select et pas seulement les données "value" via $_POST.

    VCoila comment je fais pour l'instant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        if(isset($_POST['select_hide']) && !empty($_POST['select_hide'])){
    	$Col1_Array = $_POST['select_hide'];
    	print_r($Col1_Array);
            foreach($Col1_Array as $selectValue){
    		//affichage des valeurs sélectionnées
                    echo $selectValue."<br>";
    	}
    }

    Traitement javascript pour le submit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function traitementAvantSubmit(ListBox,HiddenSelect,thisForm){
     
    for (var i = 0; i < ListBox.length; i++) {
    HiddenSelect.options[HiddenSelect.length] = new Option(ListBox.options[i].text, ListBox.options[i].value,false,true);
     
     
    thisForm.submit();
    }
    Merci d'avance!

  2. #2
    Membre éclairé Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Points : 876
    Points
    876
    Par défaut
    Bonjour,

    Cette valeur n'est pas postée. Tu ne peux donc pas la récupérer avec PHP.
    Pour ce qui est du javascript ca doit être faisable en récupérant le innerHTML (beurk) de l'élément DOM

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 147
    Points : 120
    Points
    120
    Par défaut
    Autres possibilités :

    Placer le label également dans le value, en plaçant un séparateur entre les deux.

    D'où viennent les données de ton select ?
    D'une base ?
    Dans ce cas tu peut aller récupérer les valeurs dans la base

    Tappé dans la page html ?
    Créé un tableau avec la valeur de tes options.
    Parcours ce tableau pour obtenir les options et place les index en value.
    Quand tu a envoyé le formulaire tu peut récupérer le bon contenu avec l'index posté.

  4. #4
    Membre confirmé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Points : 503
    Points
    503
    Par défaut
    Elles viennent d'une base, mais sont manipulé avant d'etre inclus dans le select, d'où mon obligation de les récupérer.

    Sinon dans je peux mettre une chaine de caractère dans la méthode value javascript?

    Ce me semble bizarre qu'il n'y ait pas de solution plus simple a ce problème que je trouve assez contraignant.


    En javacript , il doit etre possible d'inclure ces infos propempent lors du submit non ?

  5. #5
    Membre éclairé Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Points : 876
    Points
    876
    Par défaut
    Tu peux toujours comme l'a dis Bloodscalp, concaténer dans le value.

    Du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <option value="id-Label">Label</option>
    Et dans ton PHP faire quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    list($id, $label) = explode('-', $_POST['select_hide'], 2);
    C'est barbar mais ca marche

  6. #6
    Membre confirmé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Points : 503
    Points
    503
    Par défaut
    Merci quand même pour la solution! ca se marie tres bien avec le reste de mon code

    Quand on a des exigences de temps strict et pas les compétences initiales , faut faire avec

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 147
    Points : 120
    Points
    120
    Par défaut
    Attention tout de même au séparateur utilisé, le "-" peut se retrouver dans ton label et dans ce cas tu ne pourras pas récupérer toute la valeur.

    id-label
    5-Sous-tasse

    id=5
    label=Sous

    Alors qu'avec un séparateur du genre "&&" on a quand même moins de risques...

  8. #8
    Membre éclairé Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Points : 876
    Points
    876
    Par défaut
    non, d'ou le 3eme paramètre de explode

  9. #9
    Membre confirmé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Points : 503
    Points
    503
    Par défaut
    Merci pour les infos , ce conseil tombe j'ai des caractere "-" dans mes chaines de caracteres.


    Sinon p'tite question bete ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list($id, $label) = explode('-', $_POST['select_hide'], 2);

    J'ai un probleme avec ce code => array to string conversion , et pour l'instant à part le remplacer par ca , je n'ai pas trouvé mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $id=array();
    	$label=array();
    	foreach($Col1_Array AS $selectValue){
    	$idLabel = explode('&&',$selectValue, 2);
    	array_push($id,$idLabel[0]);
    	array_push($label,$idLabel[1]);
    	}
    Je perd au change !!!!

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

Discussions similaires

  1. Récupérer valeur d'un select multiple
    Par christgh dans le forum Langage
    Réponses: 3
    Dernier message: 01/08/2007, 15h53
  2. [JavaScript] [SRC] Comment récupérer les text d'un select multiple
    Par kenny49 dans le forum Contribuez
    Réponses: 1
    Dernier message: 11/04/2007, 20h40
  3. Réponses: 6
    Dernier message: 20/07/2006, 11h51
  4. Réponses: 14
    Dernier message: 19/05/2006, 14h26
  5. [PHP-JS] Récupérer le texte d'un select
    Par Rodrick dans le forum Langage
    Réponses: 3
    Dernier message: 23/02/2006, 18h10

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