Ben justement tu devras remplir TOUS les champs :
(" INSERT INTO ... VALUES ('','','','','',........,'') ")
donc en choisissant seulement les valeurs = '1' tu te complique pour la requete apres ... la je peux pas t'aider :(
Version imprimable
Ben justement tu devras remplir TOUS les champs :
(" INSERT INTO ... VALUES ('','','','','',........,'') ")
donc en choisissant seulement les valeurs = '1' tu te complique pour la requete apres ... la je peux pas t'aider :(
Pour les options tu fais une boucle
Il faut par contre que tu joues avec les id des options et pas avec leurs noms, en gros quand tu construis ton formulaire d'annonce il suffit de mettre en value l'id de l'option et le tour est joué tout devient ultra simple.Code:
1
2
3 TANT QUE options FAIRE insérer dans la table option id_voiture, id_option FIN TANT QUE
Merci JWhite , je ne manquerai pas de revenir vers toi.j'vais plancher maintenant que tu ma donner les grandes lignes.
OK, bon courage alors. ;)Citation:
Envoyé par nebil
Avant que je me farcisse toutes les variables , c'est bien comme sa que je doit récupéré les valeurs ?Citation:
Envoyé par JWhite
Code:
1
2
3
4
5
6
7
8
9 <div class="option"> <input type="checkbox" id="1" name="clim_manu" class="chek_option" value="1" /> <label for="1">Climatisation manuelle</label> </div> <div class="option1"> <input type="checkbox" id="2" name="abs" class="chek_option" value="2" /> <label for="2">ABS</label> </div>
pour que ma requete insére uniquement les variables cocher , il ne faut pas attribué comme valeurs a la variable siCode:
1
2
3
4
5
6
7
8 $clim_manu=$_POST['clim_manu']; echo "Climatisation manuelle $clim_manu"; (value si cochez 1 si non cochez vide) $abs=$_POST['abs']; echo "abs $abs"; (value si cochez 1 si non cochez vide)
$toto=' ' alors $toto='0' ?
Si la case n'est pas cochée la variable n'existe pas.
Normalement toutes tes checkbox pour les options devraient avoir le même name (option par exemple). Et ensuite tu récupères les options cochées à l'aide d'un foreach sur $_POST['option'], ce tableau contiendra les VALUES des cases sélectionnées. L'idéal pour la suite étant de mettre l'id des options dans ce VALUE.
Citation:
Envoyé par JWhite
donc de la sorte :
puis aprés je recupere toutes les value comme sa !!?, :roll:Code:
1
2
3
4
5
6
7
8
9
10 <div class="option"> <input type="checkbox" id="1" name="option" class="chek_option" value="1" /> <label for="1">Climatisation manuelle</label> </div> <div class="option1"> <input type="checkbox" id="2" name="option" class="chek_option" value="2" /> <label for="2">ABS</label> </div>
apresCode:
1
2 $option=$_POST['option']; la je récupére quoi comme sa ? les value 1.3.8 etc..... ?
Bon j'avoue je suis un peu perdu.Code:
1
2
3
4
5
6 $tableau = array($option); foreach ($tableau as &$valeur) { $valeur = !$value=''; // n'est pas vide comment on ecris sa !! }
OuiCode:
1
2
3
4
5
6
7
8
9 <div class="option"> <input type="checkbox" id="1" name="option" class="chek_option" value="1" /> <label for="1">Climatisation manuelle</label> </div> <div class="option1"> <input type="checkbox" id="2" name="option" class="chek_option" value="2" /> <label for="2">ABS</label> </div>
Oui tu récupères un tableau avec les ids des options (qui viennent du VALUE de tes cases)Code:$option=$_POST['option']; la je récupére quoi comme sa ? les value 1.3.8 etc..... ?
Code:
1
2
3
4 foreach ($option as $valeur) { // Tu insères dans ta table lien une ligne pour chaque option avec l'id de ta voiture et $valeur (qui est l'id de l'option) }
Voilà.
On est tout près du but, ça avance doucement mais sûrement ;)
Salut ,
Bon au delà du fait que sa marche ou pas je tiens a comprendre le fonctionnement et la ba pour moi c'est pas très claire en fait j'ai besoin de comprendre pas a pas les choses.Citation:
Envoyé par JWhite
Avec cette unique variable je récupère toutes les "values" ?
je ne suis pas obliger de crée une variable pour chaque option ?
Avec cette unique variable je récupère toutes les "values" ?
je ne suis pas obliger de crée une variable pour chaque option ?
Parceque le problème c'est que j'ai essayer de voir se que cela fait avec une boucle foreach en lui demandent de multiplier par deux mes valeursCode:$option=$_POST['option'];
J’ai comme id poster 1 , 2 ,et 3 donc a la sorti je devrais avoir 2,4,6 au passage
Je ne vois pas comment la variable $option sépare les id(s) , comment elle fait pour distingué 1 , 2 ,3 et ne les transforment pas en 123.
Puis après je lui dit multiplie par deux toutes les id contenue dans $option
Code:
1
2
3
4
5
6
7
8 $tableaux=array($option); // La je dit met dans un tableaux dont le représentent sera $tableaux la var $options qui contiens mes "value" c'est sa ? foreach($tableaux as $valeur) // la je dit ba , :? je sais pas en fait et je trouve pas en plus ou ne comprend pas les explications trouver sur le web { $valeur = $valeur * 2; echo "$valeur"; }
mais voila :
le resultat est 6 donc je recupere que l'id 3 ou alors ma boucle est mal faite
Bon sinon j'ai trouver sa et sa marche
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 $un="1"; $deux="2"; $trois="3"; $quatre=""; $tableaux = array($un, $deux, $trois, $quatre); foreach (tableaux as $value) { echo "$value<br>"; } et le resultat qui sort et 123 donc ma var value veut bien 123 et le quatre pas a l'as a partir de la je peut peut etre construire ma requete sur $value mais je suis obliger de faire un $_POST de toutes mes options avec leurs name ? mais comment ma requete va distingué le fait que $value vaut 1 et 2 et 3 et non pas 123 ?
J'ai trouvé ce qui clochait j'avais pas fait gaffe, dans le NAME de tes INPUT il faut mettre option[] et pas option totut court ;)
Et après dans $_POST['option'] tu auras un tableau de tes valeurs, à parcourir avec un foreach.
Citation:
Envoyé par JWhite
Heu !!! comme sa !!! sa marche pas
comme sa non plus !!Code:
1
2
3
4
5
6
7
8
9 <input type="checkbox" id="option_1" class="chek_option" name="option[]" value="1" /> <label for="option_1">Climatisation manuelle</label> </div> <div class="option1"> <input type="checkbox" id="option_2" class="chek_option" name="option[]" value="2" /> <label for="option_2">ABS</label> </div>
Code:
1
2
3
4
5
6
7
8
9 <input type="checkbox" id="option_1" class="chek_option" name="option[1]" value="1" /> <label for="option_1">Climatisation manuelle</label> </div> <div class="option1"> <input type="checkbox" id="option_2" class="chek_option" name="option[2]" value="2" /> <label for="option_2">ABS</label> </div>
et aprés comme sa !!! mais sa marche pas
comme sa non plus page blancheCode:
1
2
3
4
5
6
7
8
9 $option=$_POST['option']; $tableaux=array($option); foreach($tableaux as $valeur) { $valeur = $valeur * 2; echo "$valeur<br>"; }
Code:
1
2
3
4
5
6
7 $option=$_POST['option']; $tableaux=array($option); foreach($tableaux as $valeur) { $valeur=$valeur['$tableaux']; echo "$valeur<br>"; }
par contre comme sa sa mache
j'ai cochez les 3 premieres case et pas la 4°
apres je fait saCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <div class="option"> <input type="checkbox" id="option_1" class="chek_option" name="option1" value="1" /> <label for="option_1">Climatisation manuelle</label></div> <div class="option1"> <input type="checkbox" id="option_2" class="chek_option" name="option2" value="2" /> <label for="option_2">ABS</label></div> <div class="option2"> <input type="checkbox" id="option_3" class="chek_option" name="option3" value="3" /> <label for="option_3">Quatre roues motrices</label></div> <div class="option"> <input type="checkbox" id="option_4" class="chek_option" name="option4" value="4" /> <label for="option_4">Climatisation automatique</label></div>
et la bien 1 2 3 qui sortent est effectivement la case non cochez n'est pas prise en compte , mais j'attend ton intervention avant de me taper toutes lesCode:
1
2
3
4
5
6
7
8
9
10
11 $option=$_POST['option1']; $option=$_POST['option2']; $option=$_POST['option3']; $option=$_POST['option4']; $tableaux=array($option1,$option2,$option3); foreach($tableaux as $valeur) { echo "$valeur<br>"; }
$_POST
Je viens de tester un truc tout simple chez moi :
Code:
1
2
3
4
5
6 <form action="test2.php" method="post"> <input type="checkbox" name="option[]" value="1"/> <input type="checkbox" name="option[]" value="2"/> <input type="checkbox" name="option[]" value="3"/> <input type="submit" value="valider"/> </form>
Ca marche impeccable...Code:
1
2
3
4
5 <? $options = $_POST['option']; foreach($options as $option) echo $option . "<br>"; ?>
C'est peut-être les id qui foutent la grouille, ou alors plus probablement ça :
$option est déjà un tableau, là tu fais un tableau de tableau mais ça fait tout foirer logique (tu te retrouves dans $option avec un tableau à un seul élément, le tableau des options) :roll:Code:$tableaux=array($option);
Super, je viens d'apprendre grâce a toi
Comment on groupe les valeurs pour les récupérés
Et comment on les traites selon le résultat voulu
Avec foreach, quel belle machine a laver !!:lol:
Bon je continue À bientôt .
Cool ça marche donc ? Bon courage pour la suite, j'ai été content de t'aider et t'expliquer sur le coup :ccool:Citation:
Envoyé par nebil
salut ,
je suis de retour ,
comme la facon de $_POST de mes données est importante vis a vis de la construction de ma requete d'insertion .. voila comment elle se presentent ,
je $_post de facon independante
la marque , le modele , la date de mise en circulation , kilometrage , poids ,cylindré , Cv Réel ,
puis j'utilise value="caracteristique[]" avec foreach a la recup
vehicule accidenté , carburant , type de vehicule , transmission , type de carrosserie , couleur carrosserie ( je garde comme value = 0 pour ces selects exemple carburant 0=toutes , 1=essence ,2=diesel etc..... 0 etant = a toutes les options de se select ?
puis j'utilise value="option[]" avec foreach a la recup de
climatisation manuelle a virement
puis le text area et les coordonnées de facon independante.
si sa doit ressemblé a sa , j'ai une question
les values de l'ensemble de mon formulaire ( je pense que oui mais bon) doivent je supose etre toutes differentes , je ne peut pas faire sous pretexte que je change de select carburant=value 1,2,3,4 et type de vehicule=value 1,2,3,4 ? elles doivent toutes etre differente du debut du formulaire a la fin ?
j'ai une erreur quand aucune option (checkbox) n'est cocher
Code:
1
2
3
4
5
6
7
8 $options = $_POST['option']; foreach($options as $options) echo " option $options <br>"; Warning: Invalid argument supplied for foreach() in /mnt/122/free.fr/4/d/nebilpro/test_css/formulaire_insert.php on line 42
J'ai rien compris au message.
Pour le code c'est mieux de donner des noms différents aux éléments et aux tableau ça fait peut-être des conflits...
Code:
1
2
3 $options = $_POST['option']; foreach($options as $option) echo " option $option <br>";
bon je le refait ,
je te demande si c'est bien de cette maniére qu'il faut recupéré mes valeurs de facon a pouvoir construire ma requete d'insertion ,puique ma facon de recherche les annonces dependera de la facon de les avoirs insérés , ou des paramettre pris en compte pour l'insertion ...ou peut etre c'est pas cela qu'il faut voir les choses ?
donc voila comment c'est prevu :
pour les données
(la marque , le modele , la date de mise en circulation , kilometrage , poids ,cylindré , Cv Réel ) c'est un $_POST independant
$marque = $_POST['marque'];
$modele = $_POST['modele'];
etc........
pour les données
(vehicule accidenté , carburant , type de vehicule , transmission , type de carrosserie , couleur carrosserie ) qui on comme value="caracteristique[]";
avec un foreach sur caracteristique
idem pour les options
puis apres pour textarea et coordonnées de facon classique
$textearea = $_POST['textearea'];
$nom = $_POST['nom'];
etc....
apres je te demandé si les values doivent etre differente sur l'ensemble de mon formulaire ou si je peut me permettre de réutiliser value=1 si cela ne fait pas parti du meme select ? bon la je crois avoir compris qu'il vaut mieux qu'elle soient toutes differentes donc value=1 existe qu'une seul fois dans tout le formulaire.
quand a la boucle foreach elle génére une erreur
quand aucune checkbox n'est cocher
Code:
1
2
3
4
5
6 Warning: Invalid argument supplied for foreach() in /mnt/122/free.fr/4/d/nebilpro/test_css/formulaire_insert.php on line 42 $options = $_POST['option']; foreach($options as $options) echo " option $options <br>";
Oui ça me semble logique.Citation:
Envoyé par nebil
Là par contre ça me semble moins logique. Tu mets tout dans un tableau quand tu as des checkbox, mais par exemple pour carburant tu vas pas avoir des cases à cocher mais plutôt des boutons radios ou une liste déroulante, et comme c'est un champ obligatoire il vaut mieux faire une entrée spécifique. Pareil pour les autres.Citation:
pour les données
(vehicule accidenté , carburant , type de vehicule , transmission , type de carrosserie , couleur carrosserie ) qui on comme value="caracteristique[]";
avec un foreach sur caracteristique
Là ça me semble mieux.Citation:
idem pour les options
Oui.Citation:
puis apres pour textarea et coordonnées de facon classique
$textearea = $_POST['textearea'];
$nom = $_POST['nom'];
etc....
Non il faut faire attention aux NAME mais après les VALUE tu mets ce qui t'arranges.Citation:
apres je te demandé si les values doivent etre differente sur l'ensemble de mon formulaire ou si je peut me permettre de réutiliser value=1 si cela ne fait pas parti du meme select ? bon la je crois avoir compris qu'il vaut mieux qu'elle soient toutes differentes donc value=1 existe qu'une seul fois dans tout le formulaire.
J'ai déjà corrigé un peu dans mon post précédent :roll:Citation:
quand a la boucle foreach elle génére une erreur
quand aucune checkbox n'est cocher
Code:
1
2
3
4
5
6 Warning: Invalid argument supplied for foreach() in /mnt/122/free.fr/4/d/nebilpro/test_css/formulaire_insert.php on line 42 $options = $_POST['option']; foreach($options as $options) echo " option $options <br>";
Le mieux c'est ça :
Code:
1
2
3
4
5
6 if(isset($_POST['option']) { $options = $_POST['option']; foreach($options as $option) echo " option $option <br>"; }