recuperation par un $_POST

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : recuperation par un $_POST

par Reman » 05 janv. 2006, 15:09

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

par Reman » 05 janv. 2006, 12:10

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 :)

par Truc » 05 janv. 2006, 12:00

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.

par Reman » 05 janv. 2006, 11:56

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:

par Truc » 05 janv. 2006, 11:49

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.

par Cyrano » 05 janv. 2006, 11:46

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

par Reman » 05 janv. 2006, 11:45

Re,

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

par Truc » 05 janv. 2006, 11:36

salut,

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

recuperation par un $_POST

par Reman » 05 janv. 2006, 11:28

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