Page 1 sur 1

recuperation par un $_POST

Posté : 05 janv. 2006, 11:28
par Reman
Bonjour et tout d'abord bonne année à tous :wink: ,

un tout petit probleme, je n'arrive pas à récuperer par un $_POST les valeurs d'une liste.

dans mon formulaire j'ai ca :
<form method="post" action="test.php" name="test" onsubmit="return Controle()">

// plusieurs champs dont je récupere la valeur san probleme
// ...
// ...

// le select qui pose probleme
<select class="list_tri" name="lst_ventil[]" id="lst_ventil" size=10 ondblclick="TransfereListe('lst_ventil','lst_div');">
</select>

</form>
Pour récuperer ma liste entierement je fais ca :
$list = $_POST['lst_ventil'];
$nb = count($list);
for ($i=0;$i<$nb;$i++)
{
    echo ($list[$i]."\n")
}
cela me renvoie l'erreur suivante :
Notice: Undefined index:lst_ventil in ...........

a noter : ma liste est vide au depart, je la rempli grace a du javascript a partir d'une autre liste

Merci de votre aide

Posté : 05 janv. 2006, 11:36
par Truc
salut,

la balise "select" n'est pas fermée d'où peut-être l'erreur :-k

Posté : 05 janv. 2006, 11:45
par Reman
Re,

Il me semble que je ferme bien ma balise select à moins qu'il y a quelque chose qui m'echappe. :?

Posté : 05 janv. 2006, 11:46
par Cyrano
Tu ne peux retrouver dans $_POST['lst_ventil'] que la valeur sélectionnée, pas toutes les valeurs de la liste, à moins d'ajouter l'attribut "multiple" dans la balise <select> et de toutes les sélectionner.

Ce que tu veux faire relève plus de JavaScript que de PHP à mon sens. :-k

Posté : 05 janv. 2006, 11:49
par Truc
effectivement j'avais fait la confusion avec le javascript pour remplir la liste.

regarde ce que tu as comme vaiables post a l'arrivé (place ce bout de code sur la page de traitement):
<pre>
<?
var_dump($_POST);
?>
</pre>
verifis aussi le code source si les balises "option" sont bien construites.

Posté : 05 janv. 2006, 11:56
par Reman
Effectivement, en faisant un dump mon select n'apparait pas :cry: .

Je vais essayer de récuperer mes valeurs par javascript.
Peut être en codant l'evenement OnClick de mon submit de formulaire et de récuperer mes valeurs dans un tableau ? :roll:

merci de votre aide (tres) rapide :wink:

Posté : 05 janv. 2006, 12:00
par Truc
comme l'as fait remarquer Cyrano il faut ajouter l'attribut "multiple" :
<select class="list_tri" name="lst_ventil[]" id="lst_ventil" size=10 ondblclick="TransfereListe('lst_ventil','lst_div');" multiple>
</select> 
ensuite il faudrait voir comment est remplie cette liste, parceque là il n'y a pas d'options donc pas de retour.

Posté : 05 janv. 2006, 12:10
par Reman
En fait, j'ai 2 listes. La première est remplie par une requete sql. Un double click sur un element de la première liste alimente ma 2eme liste. ceci est fait par une fonction javascript (transfereliste) que j'ai trouvé je ne sais plus où.

J'aurai pu faire cela avec une seule liste à selection multiple mais ma deuxieme liste doit être triée, les valeurs sont ajoutées dans un ordre précis. C'est pour cela que j'ai traité le problème de cette facon.

Je sais c'est un peu tordu, mais pourquoi faire simple quand on peut faire compliqué :wink:

je vais essayer de resoudre cela en javascript merci de votre aide,

je passe ce thread en resolu car au niveau php y'a plus de probleme, je réouvrirai un thread sur le forum approprié si besoin :)

Posté : 05 janv. 2006, 15:09
par Reman
Pour info,

Voilà la fonction javascript pour récuperer tous les elements d'un select même s'ils ne sont pas selectionnés

(le select est de type multi)
function RecupValeurs(idNomListe)
{
    var objListe = document.getElementById(idNomListe)

    // Nombre d'elements de la liste
    nb = oblListe.lenght;

    // On selectionne tous les elements de la liste
    for (i=0; i<nb; i++)
    {
        objListe.options[i].selected=true;
    }
}
voilà on peut récuperer enfin les valeurs de la liste dans $_POST