OVH Cloud OVH Cloud

Liste Multiple

10 réponses
Avatar
laurent sturm
Salut,

Probleme:
j'ai une liste multiple:
<select name="rdv[lst_user][]" size="15" multiple="multiple">

Je récupére les valeurs des champs de mon formulaire dans:
$RDV=$_POST['rdv'];

Puis j'essaye tant bien que mal de récupérer les valeurs de cette liste dans
une variable php:

if(isset($RDV['lst_user'])) <== Ici cela me renvoi troujours false ???
{
foreach($RDV['lst_user'] as $value)
{ Instruction ...}
}

Si quelqu'un à une idée pour éclairer ma petite lanterne, je suis preneur.

@+

10 réponses

Avatar
Olivier
"laurent sturm" wrote in
news:cbb551$sh6$:

Salut,

Probleme:
j'ai une liste multiple:
<select name="rdv[lst_user][]" size="15" multiple="multiple">

Je récupére les valeurs des champs de mon formulaire dans:
$RDV=$_POST['rdv'];

Puis j'essaye tant bien que mal de récupérer les valeurs de cette
liste dans une variable php:

if(isset($RDV['lst_user'])) <== Ici cela me renvoi troujours false
???
{
foreach($RDV['lst_user'] as $value)
{ Instruction ...}
}

Si quelqu'un à une idée pour éclairer ma petite lanterne, je suis
preneur.

@+


Tu as essayé en enlevant [lst_user] ou [] dans ton code HTML ?

@+

Avatar
Paul Delannoy
laurent sturm a écrit:
Salut,

Probleme:
j'ai une liste multiple:
<select name="rdv[lst_user][]" size="15" multiple="multiple">

Je récupére les valeurs des champs de mon formulaire dans:
$RDV=$_POST['rdv'];

Puis j'essaye tant bien que mal de récupérer les valeurs de cette liste dans
une variable php:

if(isset($RDV['lst_user'])) <== Ici cela me renvoi troujours false ???
{
foreach($RDV['lst_user'] as $value)
{ Instruction ...}
}

Si quelqu'un à une idée pour éclairer ma petite lanterne, je suis preneur.


Révises les bases des tableaux (Arrays...)

Avatar
loufoque
laurent sturm wrote:
Salut,

Probleme:
j'ai une liste multiple:
<select name="rdv[lst_user][]" size="15" multiple="multiple">

Je récupére les valeurs des champs de mon formulaire dans:
$RDV=$_POST['rdv'];


fais print_r($_POST['rdv']) et regarde ce que ça donne.

Avatar
Pascal (Collectours)
laurent sturm wrote:

Salut,

Probleme:
j'ai une liste multiple:
<select name="rdv[lst_user][]" size="15" multiple="multiple">

Je récupére les valeurs des champs de mon formulaire dans:
$RDV=$_POST['rdv'];
[snip]


if(isset($RDV['lst_user'])) <== Ici cela me renvoi troujours false ???
[snip]


Bonjour,
ré-essayez avec le code ci-dessous, qui fonctionne.
Utilisez var_dump sur votre propre code - C'est très utile pour comprendre
ce qui se passe.
Cordialement

<form method="post" action="essai.php">
<select name="rdv[lst_user][]" size="3" multiple="multiple">
<option>valeur_1</option>
<option>valeur_2</option>
<option>valeur_3</option>
</select>
<input type="submit" name="bidule" value="go" />
</form>
<?php
// Je récupére les valeurs des champs de mon formulaire dans:

$RDV=$_POST['rdv'];
print '<pre>';
var_dump($RDV);
echo "nSet ? ",isset($RDV['lst_user']);
print '</pre>';
?>

Avatar
Khone
Salut

Solution :

1 - faire un print_r($_POST) pour savoir ce qu'il y a dedans
2 - Essayer avec cette syntaxe
<select name="rdv['lst_user'][]" size="15" multiple="multiple">

au passage, je crois que multiple tout court suffit:
<select name="rdv['lst_user'][]" size="15" multiple>

Khône
Avatar
laurent sturm
Désolé de vous avoir réveillé pour rien, mais en fait c'était une simple
erreur de déclaration, j'avais oublié de déclarr ma variable $RDV en global
dans une fonction.

Merci quand même.

@+


"laurent sturm" a écrit dans le message de
news:cbb551$sh6$
Salut,

Probleme:
j'ai une liste multiple:
<select name="rdv[lst_user][]" size="15" multiple="multiple">

Je récupére les valeurs des champs de mon formulaire dans:
$RDV=$_POST['rdv'];

Puis j'essaye tant bien que mal de récupérer les valeurs de cette liste
dans

une variable php:

if(isset($RDV['lst_user'])) <== Ici cela me renvoi troujours false ???
{
foreach($RDV['lst_user'] as $value)
{ Instruction ...}
}

Si quelqu'un à une idée pour éclairer ma petite lanterne, je suis preneur.

@+


Avatar
cmeresse
Khone wrote in message news:<40d9dabd$0$15214$...
<select name="rdv['lst_user'][]" size="15" multiple="multiple">

au passage, je crois que multiple tout court suffit:
<select name="rdv['lst_user'][]" size="15" multiple>


Effectivement mais tout dépend si on veut faire du html ou du xhtml
L'avenir est au xhtml en principe... :)

A+
Christophe

Avatar
Phenix
Salut,
je pense que le problème vient de :

$RDV=$_POST['rdv'];

En effet, dans rdv (du post) tu affectes un tableau et ensuite tu le
transfères par POST sur une autre page, ou du moins une autre instance, or
je ne crois pas que POST gère les tableaux (même si c'est un tableau en
lui-même :) ).
Donc $_POST['rdv'] devrait te donner une chaine de caracteres ou quelque
chose dans le genre, essaie de faire echo $_POST['rdv']; tu verras bien si
c'est un array ou pas.

Pour solutionner ce probleme, tu peux faire (dans ta premiere instance):

$_POST['rdv'] = implode('..|..',$ton_tableau_a_transmettre); // où ..|.. est
un délimiteur que tu peux changer

Ensuite, pour récupérer tes données en tableau:

$RDV = explode('..|..' , $_POST['rdv']);

Voila, c'est un peu tiré par les cheveux mais ca devrait marcher...

Bye

Phenix
http://www.noxcars.tk/
Avatar
laurent sturm
"Khone" a écrit dans le message de
news:40d9dabd$0$15214$
Salut

Solution :

1 - faire un print_r($_POST) pour savoir ce qu'il y a dedans
2 - Essayer avec cette syntaxe
<select name="rdv['lst_user'][]" size="15" multiple="multiple">

au passage, je crois que multiple tout court suffit:
<select name="rdv['lst_user'][]" size="15" multiple>


Effectivement pour du HTML multiple suffit, mais pour du XHTML
validé par le W3C il faut codé multiple="multiple", car en XHTML
tous attributs d'une balise doit avoir une valeur.
C'est la même chose pour <option selected=selected ...

@+


Khône


Avatar
Phenix
Salut,
je pense que le problème vient de :

$RDV=$_POST['rdv'];

En effet, dans rdv (du post) tu affectes un tableau et ensuite tu le
transfères par POST sur une autre page, ou du moins une autre instance, or
je ne crois pas que POST gère les tableaux (même si c'est un tableau en
lui-même :) ).
Donc $_POST['rdv'] devrait te donner une chaine de caracteres ou quelque
chose dans le genre, essaie de faire echo $_POST['rdv']; tu verras bien si
c'est un array ou pas.

Pour solutionner ce probleme, tu peux faire (dans ta premiere instance):

$_POST['rdv'] = implode('..|..',$ton_tableau_a_transmettre); // où ..|.. est
un délimiteur que tu peux changer

Ensuite, pour récupérer tes données en tableau:

$RDV = explode('..|..' , $_POST['rdv']);

Voila, c'est un peu tiré par les cheveux mais ca devrait marcher...

Bye

Phenix
http://www.noxcars.tk/


"laurent sturm" a écrit dans le message de news:
cbb551$sh6$
Salut,

Probleme:
j'ai une liste multiple:
<select name="rdv[lst_user][]" size="15" multiple="multiple">

Je récupére les valeurs des champs de mon formulaire dans:
$RDV=$_POST['rdv'];

Puis j'essaye tant bien que mal de récupérer les valeurs de cette liste
dans

une variable php:

if(isset($RDV['lst_user'])) <== Ici cela me renvoi troujours false ???
{
foreach($RDV['lst_user'] as $value)
{ Instruction ...}
}

Si quelqu'un à une idée pour éclairer ma petite lanterne, je suis preneur.

@+