Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/10/2007, 08h30   #1
Membre confirmé
 
Avatar de onirisme
 
Inscription : novembre 2004
Messages : 210
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : novembre 2004
Messages : 210
Points : 232
Points : 232
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 :
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 :
1
2
 
createSelect("name", "option1, option2, option3,etc...") ;
Mais je n'arrive pas à créer cette fonction.
Je suis parti de ça ...
Code :
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.
__________________
Mes parents m'ont offert le nouvel iPhone 3G pour mon anniversaire. Lorsqu'ils me l'ont donné, mon père m'a dit, un peu embarassé : "Le vendeur a dit que ça lisait les vidéos, mais j'ai un doute car je me demande bien où on peut mettre le DVD"
onirisme est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2007, 08h42   #2
Membre confirmé
 
Développeur Web
Inscription : octobre 2006
Messages : 251
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2006
Messages : 251
Points : 268
Points : 268
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 :
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 :
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.
benji07 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2007, 11h05   #3
Membre confirmé
 
Avatar de onirisme
 
Inscription : novembre 2004
Messages : 210
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : novembre 2004
Messages : 210
Points : 232
Points : 232
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 :
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 :
1
2
 
<?php createSelect("droits","600,700,644"); ?>
Code :
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...
__________________
Mes parents m'ont offert le nouvel iPhone 3G pour mon anniversaire. Lorsqu'ils me l'ont donné, mon père m'a dit, un peu embarassé : "Le vendeur a dit que ça lisait les vidéos, mais j'ai un doute car je me demande bien où on peut mettre le DVD"
onirisme est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2007, 16h07   #4
Membre confirmé
 
Développeur Web
Inscription : octobre 2006
Messages : 251
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2006
Messages : 251
Points : 268
Points : 268
Oups..., voilà le bon code, j'ai remplacer $values par $vt dans le foreach

Code :
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>';
}
benji07 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2007, 16h26   #5
Membre confirmé
 
Avatar de onirisme
 
Inscription : novembre 2004
Messages : 210
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : novembre 2004
Messages : 210
Points : 232
Points : 232
Que dire à part MERCI!

Tout fonctionne
__________________
Mes parents m'ont offert le nouvel iPhone 3G pour mon anniversaire. Lorsqu'ils me l'ont donné, mon père m'a dit, un peu embarassé : "Le vendeur a dit que ça lisait les vidéos, mais j'ai un doute car je me demande bien où on peut mettre le DVD"
onirisme est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h21.


 
 
 
 
Partenaires

Hébergement Web