Probleme pour recuperer les value d'un select mutiple

sabou94 Messages postés 158 Date d'inscription vendredi 12 mars 2004 Statut Membre Dernière intervention 17 avril 2007 - 6 juin 2005 à 00:07
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 7 juin 2005 à 09:00
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

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
6 juin 2005 à 00:19
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>
0
sabou94 Messages postés 158 Date d'inscription vendredi 12 mars 2004 Statut Membre Dernière intervention 17 avril 2007
6 juin 2005 à 10:03
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
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
6 juin 2005 à 10:18
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">
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
6 juin 2005 à 10:21
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sabou94 Messages postés 158 Date d'inscription vendredi 12 mars 2004 Statut Membre Dernière intervention 17 avril 2007
6 juin 2005 à 10:25
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
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
6 juin 2005 à 11:04
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.
0
sabou94 Messages postés 158 Date d'inscription vendredi 12 mars 2004 Statut Membre Dernière intervention 17 avril 2007
6 juin 2005 à 23:15
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
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 juin 2005 à 09:00
La en l'occurence quand tu as poste ce dernier message c'etait en plein milieu de l'apres-midi pour moi :-)
A plus!
0
Rejoignez-nous