A voir également:
- Php select multiple
- Easy php - Télécharger - Divers Web & Internet
- Liste déroulante choix multiple excel - Guide
- Ecran multiple pc - Guide
- Windows presse papier multiple - Guide
- Retour a la ligne php ✓ - Forum PHP
13 réponses
Pour ceux qui veulent une solution simple :
============================
Dans le formulaire :
--------------------
<select name="ressources[]" size="15" multiple>
...
</select>
Pour récupérer :
-----------------
foreach($_POST["ressources"] as $value)
{
// traitements : $value contient les valeurs successives
}
NB : dans les posts précédents, il y a une confusion entre les variables tableaux d'un script qui sont passées à une autre page par un serialize et les données d'un formulaire qui ne deviennent des variables que sur la page qui les reçoit.
Donc le fait que le formulaire et le script soient ou non sur la même page n'a absolument aucune importance.
============================
Dans le formulaire :
--------------------
<select name="ressources[]" size="15" multiple>
...
</select>
Pour récupérer :
-----------------
foreach($_POST["ressources"] as $value)
{
// traitements : $value contient les valeurs successives
}
NB : dans les posts précédents, il y a une confusion entre les variables tableaux d'un script qui sont passées à une autre page par un serialize et les données d'un formulaire qui ne deviennent des variables que sur la page qui les reçoit.
Donc le fait que le formulaire et le script soient ou non sur la même page n'a absolument aucune importance.
en fait le truc c est d appeler le select comme un tableau et php le recupere bien en tableau :
<select name="users[]" multiple>
<select name="users[]" multiple>
flokocha
Messages postés
1510
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
10 octobre 2015
281
20 avril 2004 à 09:41
20 avril 2004 à 09:41
Trouvé sur www.phpcs.com :
<? // Traitement après post et affichage des valeurs du champ select if ($HTTP_POST_VARS["Col1"] != "") { $Col1_Array = $HTTP_POST_VARS["Col1"]; for ($num = 0; $num < count($Col1_Array); $num++) { echo $Col1_Array[$num]."<br>"; } } ?> <html> <head> <title>Recuperer valeur select dans variable php</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script> function PostSelect(liste) { // On compte le nombre d'item de la liste select NbCol1 = document.forms[liste].elements.Col1.length; // On lance une boucle pour selectionner tous les items for (a = 0; a < NbCol1; a++) { document.forms[liste].elements.Col1.options[a].selected = TRUE; } // On modifie l'ID du champ select pour que PHP traite cette // dernière comme un array document.forms[liste].elements.Col1.name = "Col1[]"; // On soumet le formulaire document.forms[liste].submit(); } </script> </head> <body> <form name="Liste1" method="post" action="capture_select.php"> <select name="Col1" size="4" multiple style="width: 150px"> <option value="Valeur 1">Valeur 1</option> <option value="Valeur 2">Valeur 2</option> <option value="Valeur 3">Valeur 3</option> <option value="Valeur 4">Valeur 4</option> <option value="Valeur 5">Valeur 5</option> </select><br><br> <input name="Envoyer" type="button" value="Envoyer" onClick="javascript:PostSelect('Liste1')"> </form> </body> </html>
Bonjour.
Je ne sais pas si vous avez votre réponse, mais ça peut servir à quelqu'un si il passe par ce post (trés bien référencé d'ailleur par google :) )
Là, vous avez la réponse à vos soucis, il faut mettre en nom du select quelque chose comme ça : nomdemonselect[]
qui fait en sorte que php puisse interprété que c'est un tableau qui lui est envoyé.
http://liihs.univ-tlse1.fr/bastide/Teaching/php/forms.php
cependant : j'ai constaté une chtite chose : si vous construisez une fonction du type :
Remarquez la ligne contenant ceci :
si l'on passe en variable le nom du select, il faut concaténer, sinon, un message d'erreur apparait lors de la consultation de la page comme quoi il manque un ] alors qu'il y est.
Vlà, c'est tout, j'espère que ça servira à quelqu'un :)
Bye et surtout, (je vais faire une conclusion à caractère politique )
Vive les Endive Braisées looooooooool
@+ ;)
Je ne sais pas si vous avez votre réponse, mais ça peut servir à quelqu'un si il passe par ce post (trés bien référencé d'ailleur par google :) )
Là, vous avez la réponse à vos soucis, il faut mettre en nom du select quelque chose comme ça : nomdemonselect[]
qui fait en sorte que php puisse interprété que c'est un tableau qui lui est envoyé.
http://liihs.univ-tlse1.fr/bastide/Teaching/php/forms.php
cependant : j'ai constaté une chtite chose : si vous construisez une fonction du type :
function constr_select_multiple($table, $nom, $selected, $id, $label) { $query = "SELECT * FROM $table"; $res = mysql_query($query) or die(mysql_error() . "<br>$query<br>"); $select = "<select name='" . $nom . "[]' size='5' multiple>"; $select .= "<option value=''>Cliquez Ici</option>"; while ($data = mysql_fetch_array($res)) { if (recherchetab($data[$id], $selected) == true) { $complement = " selected"; } $select .= "<option value='" . $data[$id] . "' $complement>" . $data[$label] . "</option>"; $complement = ""; } $select .= "</select>"; return($select); }
Remarquez la ligne contenant ceci :
$select = "<select name='" . $nom . "[]' size='5' multiple>";
si l'on passe en variable le nom du select, il faut concaténer, sinon, un message d'erreur apparait lors de la consultation de la page comme quoi il manque un ] alors qu'il y est.
Vlà, c'est tout, j'espère que ça servira à quelqu'un :)
Bye et surtout, (je vais faire une conclusion à caractère politique )
Vive les Endive Braisées looooooooool
@+ ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut, alors, "<select name='listecouleur>" il manque simplement le ' après 'listecouleur voila j'espère que cela t'aideras ;)
Utilisateur anonyme
20 avril 2004 à 09:35
20 avril 2004 à 09:35
Es tu sûr qu'il y a un probleme à transmettre les tableaux??? J'en utilise courament pour traiter des listes de checkbox ou autres, et je n'ai jamais eu aucun probleme à les passer en POST.
Fat_Cartman,
Parce que je le vaux bien...
Fat_Cartman,
Parce que je le vaux bien...
Merci a toi
j ai corrigé 2 erreurs et ca marche
il faut mettre true en minuscule et non en majuscule et enlever la boucle dans le php sinon il transmet tous les elements et non uniquement ceux selectionnés
Merci encore
j ai corrigé 2 erreurs et ca marche
il faut mettre true en minuscule et non en majuscule et enlever la boucle dans le php sinon il transmet tous les elements et non uniquement ceux selectionnés
Merci encore
tu passes des tableaux sans utiliser la fonction serialize et ca passe ? peut etre en php3 mais plus en php4 ou 5 je crois
en tout cas ce formulaire avec un select je n arrive pas a le passer quand je fais un $_POST dans la seconde page j ai tous les elements de mon formulaire (que j ai supprimé ici pour l exemple)sauf le SELECT
comment feriez vous ?
en tout cas ce formulaire avec un select je n arrive pas a le passer quand je fais un $_POST dans la seconde page j ai tous les elements de mon formulaire (que j ai supprimé ici pour l exemple)sauf le SELECT
comment feriez vous ?
flokocha
Messages postés
1510
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
10 octobre 2015
281
20 avril 2004 à 10:02
20 avril 2004 à 10:02
Remercie l'auteur de ce script! :o)
Mais méfie-toi des $HTTP_POST_VARS, c'est plus trop conseillé.
Mais méfie-toi des $HTTP_POST_VARS, c'est plus trop conseillé.
comment fait-on svp pour empecher un utilisateur d'appuyer sur un bouton tant quil n'a pas rempli un champ text et textarea?
Merci de votre aide
Merci de votre aide
bonjour a tous,
je voudrais juste rajouter pour la personne qui a stipuller qu'il etait impossible de creer un formulaire + son traitement en php dans la meme page....
ben cela est tout a fait possible :
<form name="nomForm" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
ou de maniere plus securisée pour éviter certaines failles... ;)
<form name="nomForm" action="<?php echo htmlentities(strip_tags($_SERVER['PHP_SELF'])); ?>" method="post" enctype="multipart/form-data">
on peut utiliser aussi de la meme maniere qu'avec $_SERVER['PHP_SELF'] ceci : $_SERVER['SCRIPT_NAME']
en esperant avoir aider quelque uns ;)
@++
DgSe95
je voudrais juste rajouter pour la personne qui a stipuller qu'il etait impossible de creer un formulaire + son traitement en php dans la meme page....
ben cela est tout a fait possible :
<form name="nomForm" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
ou de maniere plus securisée pour éviter certaines failles... ;)
<form name="nomForm" action="<?php echo htmlentities(strip_tags($_SERVER['PHP_SELF'])); ?>" method="post" enctype="multipart/form-data">
on peut utiliser aussi de la meme maniere qu'avec $_SERVER['PHP_SELF'] ceci : $_SERVER['SCRIPT_NAME']
en esperant avoir aider quelque uns ;)
@++
DgSe95
Utilisateur anonyme
20 avril 2004 à 08:50
20 avril 2004 à 08:50
Salut,
C'est normal que cela ne fonctionne pas si ton formulaire et ton traitement se trouve dans la meme page.
Kalamit,
Parle à ma culasse, mon carter est malade. :)
C'est normal que cela ne fonctionne pas si ton formulaire et ton traitement se trouve dans la meme page.
Kalamit,
Parle à ma culasse, mon carter est malade. :)
je sais bien que normalement on recupere les variables d un formulaire sur une autre page mais dans le cas d un SELECT MULTIPLE tu ne peux pas recuperer sur une autre page car le choix de l utilisateur est mis dans un tableau et donc ne sont pas transmis a la page d apres sauf a utiliser serialize mais que je ne vois pas comment utiliser
j ai trouve une solution avec une fonction java mais j aimerai trouver comment le faire en php
merci a vous pour votre aide
j ai trouve une solution avec une fonction java mais j aimerai trouver comment le faire en php
merci a vous pour votre aide
En php, je le repete, ce n'est pas possible puisqu'il doit y avoir interaction avec le formulaire. Le php est executé avant le chargement de la page dans le navigateur. Il ne peut donc pas etre interpreté après que l'utilisateur ait fait un choix dans ton formulaire.
La bonne solution est celle donnée par Flokocha en javascript (il y en a surement d'autre).
Kalamit,
Parle à ma culasse, mon carter est malade. :)
La bonne solution est celle donnée par Flokocha en javascript (il y en a surement d'autre).
Kalamit,
Parle à ma culasse, mon carter est malade. :)
7 juin 2007 à 18:05
Mon formulaire est envoyé par e-mail, et met à disposition aux utilisateurs un 'select multiple'. J'aimerais que dans mon le mail apparaisse tout ce qu'il a selectionné dans mon select multiple. ex:
-------------------------------------------------------
mail(
'exemple@exemple.fr',
'Commande',
$_POST['nom'] . " " . $_POST['prenom'] . " a passé une commande de:\n" . $_POST['references'] . "\n\nA l'adresse de livraison:\n" . $_POST['adresse_livraison'], $entetemail
);
-------------------------------------------------------
Que dois je changer ?
7 juin 2007 à 18:16
7 juin 2007 à 19:50
7 juin 2007 à 22:40