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 :

fonction sur champs select


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de onirisme
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Novembre 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 221
    Points : 316
    Points
    316
    Par défaut fonction sur champs select
    Bonjour,

    Je réalise un formulaire par le biais duquel il sera possible de créer un dossier et de rensigner les droits d'acces via chmod.

    Pour cela, j'ai créé une fonction de cr&&tion de champs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function createInput($name,$type,$value){
    	echo '<input type="', $type,'" name="',$name,'" value="',$value,'">';
    }
    L'appel se fait par createInput("name", "type", "value") ;

    Jusque là, tout va bien...

    LE PROBLEME :
    Je souhaiterai créer un fonction pour la création d'un champs select ou l'utilisateur pourra saisir les informations dans l'appel de la fonction, du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    createSelect("name", "option1, option2, option3,etc...") ;
    Mais je n'arrive pas à créer cette fonction.
    Je suis parti de ça ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function createSelect($name,$values){
    	echo '<select name="$name">';
    	echo "<option>$values</option>";
    	echo '</select>';
    }
    Je souhaite passer par une fonction car cet appel pourra se faire pour d'autres formulaires avec des options différentes.
    J'imagine qu'il faut passer par un tableau mais bon j'ai essayé plein de trucs sans résultats.
    Bon en gros si vous pouvez me donner un coup de main, ça serait sympa.

  2. #2
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Points : 292
    Points
    292
    Par défaut
    Pour le champs values tu a 2 solutions:
    soit tu te sert d'un tableau array(value => text)
    Comme dans l'exemple ci dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function createSelect($name,$values){
        echo '<select name='.$name.'>';
        foreach ($values as $value => $text){
            echo '<option value="'.$value.'">'.$text.'</option>';
        }
        echo '</select>';
    }
    Ou alors pour si ton champs value est de la forme valeur1,valeur2,...
    tu doit faire cette fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function createSelect($name,$values){
        echo '<select name='.$name.'>';
        $vt = explode(',',$values);
        foreach ($values as $value => $text){
            // le champ value est un entier aller de 0 à count($vt)
            echo '<option value="'.$value.'">'.$text.'</option>';
        }
        echo '</select>';
    }
    J'espère que ma réponse te convient.

  3. #3
    Membre averti Avatar de onirisme
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Novembre 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 221
    Points : 316
    Points
    316
    Par défaut
    Merci beaucoup pour la réponse. J'ai déjà bien avancé

    J'ai essayé le deuxième code qui me retourne l'erreur suivante :
    Invalid argument supplied for foreach()

    Normal.

    Je déclare mon tableau, le soucis c'est que je n'arrive pas à récupérer mes valeurs à l'appel de ma fonction

    Quand je code comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function createSelect($name,$values){
        echo '<select name='.$name.'>';
    	$values = array(644,700,744);
    	foreach ($values as $value => $text){
            echo '<option value="'.$value.'">'.$text.'</option>';
        }
        echo '</select>';
    }
    Mon select affiche bien mes options

    MAIS--

    Je n'arrive pas à récupérer les valeurs lors de l'appel de la fonction. La fonction explode ne fonctionne pas (message invalid...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <?php createSelect("droits","600,700,644"); ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function createSelect($name,$values){
        echo '<select name='.$name.'>';
    	$values = array($values);
    	foreach ($values as $value => $text){
            echo '<option value="'.$value.'">'.$text.'</option>';
        }
        echo '</select>';
    }
    Le code suivant m'affiche toutes les valeurs en ligne : 600,700,644

    Bon, en gros je suis nul
    Ce que je voudrai savoir c'est comment récupérer ma variable "values" sous forme de tableau...

  4. #4
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Points : 292
    Points
    292
    Par défaut
    Oups..., voilà le bon code, j'ai remplacer $values par $vt dans le foreach

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function createSelect($name,$values){
        echo '<select name='.$name.'>';
        $vt = explode(',',$values);
        foreach ($vt as $value => $text){
            // le champ value est un entier aller de 0 à count($vt)
            echo '<option value="'.$value.'">'.$text.'</option>';
        }
        echo '</select>';
    }

  5. #5
    Membre averti Avatar de onirisme
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Novembre 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 221
    Points : 316
    Points
    316
    Par défaut
    Que dire à part MERCI!

    Tout fonctionne

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

Discussions similaires

  1. 2 actions sur evenement onchange sur champ Select
    Par falz222 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/08/2006, 20h59
  2. Peut-on appliquer une fonction sur un champs ajouté?
    Par tinwul dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 31/05/2006, 17h02
  3. Undefined index sur un champs select
    Par kcizth dans le forum Langage
    Réponses: 1
    Dernier message: 06/04/2006, 09h47
  4. Faire apparaître un champ texte en cliquant sur un select
    Par yoyot dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/03/2005, 16h16
  5. Fonction LEFT sur champ de type "text" : méthodes
    Par MatthieuQ dans le forum Langage SQL
    Réponses: 4
    Dernier message: 08/06/2004, 11h15

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