Probleme pour recuperer les value d'un select mutiple

Signaler
Messages postés
158
Date d'inscription
vendredi 12 mars 2004
Statut
Membre
Dernière intervention
17 avril 2007
-
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
-
Bonsoir,

j'ai un probleme sur lequel je buche depuis deja plusieurs semaines!

Voila j'ai deux listes deroulantes. La 1ere alimente la 2eme à l'aide d'un bouton ajouter.

je voudrais recuperer les value de cette derniere. J'ai essayé avec un poste mais ca ne marche pas!

Quelqu'un pourrait m'aider? voila le code :

Code des select et de l'alimentation :

<SELECT name="req_ings" size=6 style="width:120px" multiple> <? echo $ings?>

</SELECT>


<SELECT name="ings" id="ing" size=6 multiple style="width:120px">

</SELECT>

>>"
onClick="Deplacer(this.form.req_ings,this.form.ings)">



Code de recuperation des values (qui ne marche pas....) :

$recette=$_POST['recette'];

$nb=$_POST['nombre'];


$txt=$nb.'


'.$recette;

$liste = ";";

for ($i=0;$i<count($_POST['ings']);$i++)

$liste = $liste.$_POST['ings'][$i].";" ;

$req=("INSERT INTO recettes (nom,type,ings,txt) VALUES ('$nom','$type','$liste','$txt')");



Voila, si vous pouviez m'aider s'il vous plait....


merci d'avance...

sabrina

8 réponses

Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Salut,



pour récupérer la valeur d'un select (par exemple ce code :



<select name="categorie">

<option value="cat1">catégorie 1</option>

<option value="cat2">catégorie 2</option>

<select>



tu mets ceci sur ta page de traitement :



<?php

if(isset($_POST['categorie']))

{

$categorie=$_POST['categorie'];

}

?>

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
158
Date d'inscription
vendredi 12 mars 2004
Statut
Membre
Dernière intervention
17 avril 2007

Salut! Merci de m'avoir répondu mais j'ai l'impression que tu n'as
pas pris le temps de lire mon code. Sinon tu aurais vu que j'ai deja
fait appel à $_post['ings'] dans mon for.

Revoila le code :

$liste = ";";
for ($i=0;$i<count($_POST['ings']);$i++)
$liste = $liste.$_POST['ings'][$i].";" ;
$req=("INSERT INTO recettes (nom,type,ings,txt) VALUES ('$nom','$type','$liste','$txt')");


En fait je concatene les values de mon select avec des " ; ".

Le probleme c'est que ca ne marche pas, ca ne fait que me rajouter dans la base de données un " ; ".

Voila si je pourrais avoir un semblant de reponse....

Merci beaucoup en tout cas d'avoir pris le temps de me repondre....


sabrina
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
hello,



tu as bien compris qu'il fallait un tableau, mais...tu ne donnes pas de tableau a ton code :



<SELECT name="ings" id="ing" size=6 multiple style="width:120px">




a remplacer par





<SELECT name="ings[]" id="ing" size=6 multiple style="width:120px">
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Au passage, puisqu'on y est ;-) :



for ($i=0;$i<count($_POST['ings']);$i++)




A remplacer plutot par :




$cpt =
count($_POST['ings']);


for ($i=0;$i<$cpt;$i++)




valable tout le temps...mais la en l'occurrence il y a plus simple que ta boucle for () :






foreach (
$_POST['ings'] as $choix
) {

//requete en ajoutant $choix a ta base.



}




De plus, tu ne mets pas ta requete dans ta boucle, donc ca ne pouvait pas fonctionner.
Messages postés
158
Date d'inscription
vendredi 12 mars 2004
Statut
Membre
Dernière intervention
17 avril 2007

Oui c'est vrai j'avais vu mais si je met un tableau, ma fonction pour deplacer
les éléments ne marchent plus!

Voici son code:

<SCRIPT LANGUAGE="JavaScript">


function Deplacer(l1,l2) {

if (l1.options.selectedIndex>=0) {

o=new Option(l1.options[l1.options.selectedIndex].text,l1.options[l1.options.selectedIndex].value);

l2.options[l2.options.length]=o;

l1.options[l1.options.selectedIndex]=null;

}

else {

alert("Aucun ingrédient sélectionnée");

}

}

</SCRIPT>



Donc comment je peux faire pour que 'ings' soit un tableau mais que ma fonction 'Deplacer' marche?

Merci de ta reponse!!


sabrina
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Ah ben c'est a ta fonction de s'adapter, lol, pas au formulaire...
Et ta fonction est en javascriptm tu devrais plutot poser ta question sur le forum js.
Messages postés
158
Date d'inscription
vendredi 12 mars 2004
Statut
Membre
Dernière intervention
17 avril 2007

Ok merci, finalement j'ai décidée de faire autrement car ca devenait
trop compliquée. Je prefere passer par un champ caché. Merci encore et
bonne soirée/journée.


sabrina
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
La en l'occurence quand tu as poste ce dernier message c'etait en plein milieu de l'apres-midi pour moi :-)
A plus!