Aller au contenu

Probleme plusieurs select boxes


Sujets conseillés

Posté

Bonjour à tous,

voici mon probleme :

j'ai une fonction qui génere un formulaire, qui contient plusieurs menus déroulants, je dois enregistrer le resultat dans une base mysql :

les tables :

type_criteres :
-------------------
id_type_critere (key)
titre
activer

criteres :
-------------------
id_critere (key)
id_type_critere
valeur
activer

exemple de données :

type_criteres :

-------------------

1 | couleur | 1

2 | taille | 1

criteres :

-------------------

1 | 1 | rouge | 1

2 | 1 | vert | 1

3 | 2 | XL | 1

la fonction :

function Make_Criteria_Form($type_criteres,$criteres_Tbl){
$sql = "SELECT * FROM $type_criteres WHERE activer=1 ORDER BY id_type_critere ASC";
$result = mysql_query($sql) or die(mysql_error());
$total_row_type_critere = mysql_num_rows($result);
$form ="";
$form .="<table> \n";
if($total_row_type_critere>0){
while($row_type_critere = mysql_fetch_assoc($result)){
$form .="<tr><td> \n";
$form .= $row_type_critere["titre"]." : ";
$form .="</td><td> \n";
$sql_criteria = "SELECT * FROM $criteres_Tbl WHERE id_type_critere='".$row_type_critere["id_type_critere"]."' AND activer=1 ORDER BY valeur ASC";
$result_criteria = mysql_query($sql_criteria) or die(mysql_error());
$total_row_criteria = mysql_num_rows($result_criteria);
if($total_row_criteria>0){
$form .="<select name=\"".$row_type_critere["id_type_critere"]."\"> \n";
$form .="<option selected>Choisir</option> \n";
while($row_criteria = mysql_fetch_assoc($result_criteria)){
$form .="<option value=\"".$row_criteria["id_critere"]."\">".$row_criteria["valeur"]."</option> \n";
}
$form .="</select> \n";
}
$form .="</td></tr> \n";
}
}
$form .="</table> \n";
return $form;
}

l'affichage du formulaire :

<form name="form1" method="post" action="">
<?php echo Make_Criteria_Form($Type_Criteres_Tbl,$Criteres_Tbl); ?>
<input type="submit" name="Submit" value="Submit">
<input type="hidden" name="act" value="PostForm">
</form>

foreach($_POST as $key=>$val){
echo 'POST : '.$key.'=>'.$val.'<br>';
}

me donne :

POST : 1=>1
POST : 2=>3
POST : 3=>5

ce qui est correct comme resultat.

que dois-je faire pour récupere le résultat du formulaire, et le stocker dans ma base de donnée ?

Posté (modifié)

ha ha mdr ...

c'est ma fonction, je fais deja l'enregistrement, je cherche juste a le faire proprement

foreach($_POST as $key=>$val){
if( (is_numeric($key)) && (is_numeric($val)) ){
$sql = "INSERT INTO $produits_critere_Tbl SET
id_type_critere='".$key."',
id_critere='".$val."',
id_produit='".$_POST["id_produit"]."',
activer='1'";
mysql_query($sql) or die(mysql_error());
}
}

...

Modifié par jokerman
Posté

Je reformule ma question :

comment récuperer le résultat du formulaire sans passer par foreach $_POST, en effet j'ai d'autres variables dans mon formulaire, envoyées aussi en POST, que je dois enregistrer dans une table differente (produits).

Posté (modifié)

et bien tu peux par exemple, ajouter un suffixe particulier aux noms des champs que tu ajoutes dynamiquement aux produits et vérifier lors de ta boucle pour l'insertion si ce suffixe est présent ou pas... ;)

Modifié par georges

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...