|
|
|
|
Bonjour a tous,
je voudrais pouvoir recuperer en PHP les valeurs contenues dans un select multiple d'un formulaire.
je pensais utiliser la fonction serialize mais je n arrive pas a comprendre comment l utiliser
voici mon formulaire :
<?
echo "<form action='toto4.php' method='post' name='form' >";
echo "<select size='4' name='listecouleur> ";
echo "<OPTION value='1'>Bleu<OPTION> ";
echo "<OPTION value='2'>rouge<OPTION> ";
echo "<OPTION value='3'>jaune<OPTION> ";
echo "<OPTION value='4'>vert<OPTION> ";
echo "</select> ";
$liste = serialize(listecouleur);
echo "<a href='toto4.php?tablo=$liste'>page suivante</a>";
echo "</form>";
?>
a l execution il y a un message d erreur indiquant que listecouleur n existe pas
quelqu un a t il une solution ?
merci a vous
Pierre
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
|
Tu passes des tableaux sans utiliser la fonction serialize et ca passe ? peut etre en php3 mais plus en php4 ou 5 je crois
|
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.
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 @+ ;) |
Bonjour a tous,
|
Pour ceux qui veulent une solution simple :
|