spacemarmotte Posted August 21, 2008 Report Share Posted August 21, 2008 C'est (encore) moi :D Je suis en train d'avancer dans ma boutique mais je galére pour l'affichage des options ! Quelles commandes php utiliser pour afficher les options (en listes déroulantes) et pour en tenir compte dans le caddie externe ?? Je vous mets le code (bien qu'a mon avis je sois complètement à l'ouest sur ce coup la !! :unsure:) Si vous avez une piste.. je suis tout ouïe :D [hide]<?php // AFFICHAGE DES OPTIONS echo "<form action='options_ok.php' method='post'> <select name='options'>\n"; while ($ligne = mysql_fetch_array($data4)) { extract($ligne); if ($options4<>"") echo "<options value='$options'>$options\n"; } echo "<input type='submit'"."value=\"Choississez une option\"></form>\n"; echo "</select>\n"; ?>[/hide] (ce code m'oblige en plus a créer une page supplémentaire id+option et je ne vois pas comment "transporter" la variable sur la nouvelle page !!) sinon, a part ça... un footer, quelques réglages et ça devrait être bon ;-) je suis preneur de vos avis et critiques aussi (pas trop méchantes, les critiques !! il y a encore 2 mois, je ne captais rien au php !!!!) Merci Eric Quote Link to comment Share on other sites Partagez cette page :
Trismegiste Posted August 21, 2008 Report Share Posted August 21, 2008 (edited) en script je pense j'ai essayé mais je suis pas doué je veux bien faire des critiques si tu donnes l'adresse :) Edited August 21, 2008 by Trismegiste Quote Link to comment Share on other sites Partagez cette page :
spacemarmotte Posted August 21, 2008 Author Report Share Posted August 21, 2008 -www.jarretelles-et-cie.com ;-) Quote Link to comment Share on other sites Partagez cette page :
Trismegiste Posted August 21, 2008 Report Share Posted August 21, 2008 et bien c'est pas mal :) Quote Link to comment Share on other sites Partagez cette page :
spacemarmotte Posted August 21, 2008 Author Report Share Posted August 21, 2008 Merki !! espérons que ça m'aide a sortir du petit coin obscur dans lequel m'a mis mon ami GG ! si j'arrivais a trouver le moyen de gérer ces x#-]@ d'options... !!!! ça me prends la tête depuis quelques nuits !! Quote Link to comment Share on other sites Partagez cette page :
Trismegiste Posted August 21, 2008 Report Share Posted August 21, 2008 crotte pourquoi j'arrive pas à écrire j*a*v*a script :) Quote Link to comment Share on other sites Partagez cette page :
zig Posted August 21, 2008 Report Share Posted August 21, 2008 (edited) Il y a une faute de syntaxe html dans ton code tu as mis echo "<options value='$options'>$options\n"; et il faut mettre : echo "<option value='".$options."'>".$options."</option>\n"; et ferme le select (</select>) avant la balise du bouton submit en gros ça donne ça : <?php // AFFICHAGE DES OPTIONS echo "<form action='options_ok.php' method='post'> <select name='options'>\n"; while ($ligne = mysql_fetch_array($data4)) { extract($ligne); if ($options4<>"") { echo "<option value='".$options."'>".$options."</option>\n"; } } echo "</select>\n"; echo "<input type='submit' value=\"Choississez une option\"></form>\n"; ?> après extract($ligne); je ne sais pas à quoi ça correspond et ta requete mysql n'est pas affichée dans le code que tu as donné donc $options je ne sais pas si c'est correct Ensuite pour récupérer la valeur de ta liste "options" sur la page options_ok.php il faut utiliser la variable : $_POST['options'] Bon courage :) zig Edited August 21, 2008 by zig Quote Link to comment Share on other sites Partagez cette page :
plaisirlingerie Posted August 21, 2008 Report Share Posted August 21, 2008 salut tres beau ton site sincermenet jue le trouve tres beau Quote Link to comment Share on other sites Partagez cette page :
spacemarmotte Posted August 21, 2008 Author Report Share Posted August 21, 2008 (edited) Merci Zig .. je t'avoue que sur ce coup la, je tâtonne complet !! c'est Terra Incognita !! je viens de copier-coller ton code mais ça n'affiche toujours pas les options de la BDD (dans la colonne "option" et séparés par des virgules) ! En +, il n'y a pas beaucoup de produits avec options ! @plaisir.. merci ;-) Edited August 21, 2008 by spacemarmotte Quote Link to comment Share on other sites Partagez cette page :
zig Posted August 21, 2008 Report Share Posted August 21, 2008 Est ce que tu peux afficher la requete $data4 car comme tu ne l'as pas donné dur dur de trouver pourquoi les valeurs ne s'affichent pas Quote Link to comment Share on other sites Partagez cette page :
spacemarmotte Posted August 21, 2008 Author Report Share Posted August 21, 2008 je te donne toute la "brique" ;-) [hide]<?php $query = mysql_query("SELECT * FROM csv_ds WHERE id='$id'"); $nbreponse = mysql_num_rows($query); $nbrcol = 3; $tier = ceil($nbreponse/$nbrcol); while ($data4 = mysql_fetch_array($query)) { $ref4[] = $data4["id"]; $cat[] = $data4["cat_ids"]; $ref_pdt[] = $data4["ref"]; $titre4[] = $data4["pname"]; $url4[] = 'detail_pdt.php?id= . $data4['id]; $photo4[] = $data4["img_big"]; $brand4[] = $data4["brand"]; $dispo4[] = $data4["dispo"]; $option4[] = $data4["options"]; $options_ref4[] = $data4["options_ref"]; $teaser4[] = $data4["teaser"]; $proplist4[] = $data4["proplist"]; $descr4[] = $data4["desc"]; $prix4[] = $data4["price_eur"]." €"; } for ($i=0; $i<$nbreponse ; $i++) { if($i == $tier) { echo "</td>"."\n"."<td>";$tier=$tier*2; }?>[/hide] Quote Link to comment Share on other sites Partagez cette page :
zig Posted August 21, 2008 Report Share Posted August 21, 2008 (edited) ok donc il faut mettre ça : <?php $query = mysql_query("SELECT * FROM csv_ds WHERE id='$id'"); // AFFICHAGE DES OPTIONS echo "<form action='options_ok.php' method='post'> <select name='options'>\n"; while ($ligne = mysql_fetch_array($query)) { if (!empty($ligne['options'])) { echo "<option value='".$ligne['options']."'>".$ligne['options']."</option>\n"; } } echo "</select>\n"; echo "<input type='submit' value=\"Choississez une option\"></form>\n"; ?> J'ai enlevé le extract($ligne); car je vois pas à quoi ça sert (je pense que c'est inutile dans ce code la ça devrait fonctionner ;) et tu récupères toujours la valeur de l'option sur la page options_ok.php avec la variable $_POST['options'] EDIT : après une petite reflexion dans ta requete tu fais WHERE id='$id' donc tu sélectionnes un seul enregistrement. ensuite tu fais un while donc il ne pourra pas te trouver plus d'un seul enregistrement donc à mon avis la requete n'est pas la bonne pour ce que tu veux faire. Qu'est ce que tu as dans ton champs options comme valeurs par exemple ? zig Edited August 21, 2008 by zig Quote Link to comment Share on other sites Partagez cette page :
spacemarmotte Posted August 21, 2008 Author Report Share Posted August 21, 2008 (edited) Qu'est ce que tu as dans ton champs options comme valeurs par exemple ? Par exemple: des tailles. Pour le produit "123" -small -medium -large Dans le champs de la BDD, ils sont dans affichés (dans la colonne "options" small,medium,large et dans la colonne "options_ref" apparait les références munies des options (par exemple: 123s, 123m, 123l ) Je viens de placer ton code... ça me fait apparaitre les options mais.. toutes ensembles (1 seul choix dans le menu déroulant avec toutes les options collées) L'exemple est plus parlant: -http://www.jarretelles-et-cie.com/detail_pdt.php?id=11970 Un grand merci pour le coup de main -) Edited August 21, 2008 by spacemarmotte Quote Link to comment Share on other sites Partagez cette page :
zig Posted August 21, 2008 Report Share Posted August 21, 2008 (edited) ok c'est bien ce que je pensais donc le while ne sert à rien ici, il ne faut pas faire de boucle vu qu'il n'y a qu'un seul enregistrement C'est reparti :) <?php $query = mysql_query("SELECT * FROM csv_ds WHERE id='$id'"); // AFFICHAGE DES OPTIONS echo "<form action='options_ok.php' method='post'> <select name='options'>\n"; $ligne = mysql_fetch_array($query); //On récupère les champs option et on regarde si il y a quelque chose dedans if (!empty($ligne['options'])) { //Si il y a quelque chose dedans on récupère les différents éléments séparés par des virgules $lesoptions=explode(",",$ligne['options']); //La en fait j'ai mis les options séparées dans un tableau en php, ensuite plus qu'à faire une boucle pour afficher chaque valeur du tableau foreach($lesoptions as $valeur) { echo "<option value='".$valeur."'>".$valeur."</option>\n"; } } echo "</select>\n"; echo "<input type='submit' value=\"Choississez une option\"></form>\n"; ?> Voilà tout devrait être ok :) Edited August 21, 2008 by zig Quote Link to comment Share on other sites Partagez cette page :
Trismegiste Posted August 21, 2008 Report Share Posted August 21, 2008 moi j'ai fais un truc compliqué pour ça function normalise($text) { $virgule = array( ',' ); $liste = array( '</option><option value=>' ); $text = str_replace($virgule,$liste,$text); return trim($text); } Quote Link to comment Share on other sites Partagez cette page :
spacemarmotte Posted August 21, 2008 Author Report Share Posted August 21, 2008 (edited) tu me troue le *** !! tu l'avais quelque part ou tu viens de le taper ??? ça marche nickel ! La fonction $_POST['options'] est toujours utile ? (pour faire passer de la page ...-cie.com/detail_pdt.php?id=11970 à la page ...-cie.com/detail_pdt.php?id=11970s par exemple et ainsi être OK avec le caddie externe) Edit: le bouquin "Php Mysql pour les nuls.... est nul !! y'a trace de ça nulle part !!! Edited August 21, 2008 by spacemarmotte Quote Link to comment Share on other sites Partagez cette page :
Trismegiste Posted August 21, 2008 Report Share Posted August 21, 2008 bon je vais faire un copié, collé :) merci zig Quote Link to comment Share on other sites Partagez cette page :
zig Posted August 21, 2008 Report Share Posted August 21, 2008 (edited) tu me troue le *** !! tu l'avais quelque part ou tu viens de le taper ??? ça marche nickel ! La fonction $_POST['options'] est toujours utile ? (pour faire passer de la page ...-cie.com/detail_pdt.php?id=11970 à la page ...-cie.com/detail_pdt.php?id=11970s par exemple et ainsi être OK avec le caddie externe) Je viens de le taper ça fait plus de 5 ans que je fais du php tous les jours ;) juste un dernier détail, quand il n'y a pas d'option, la liste s'affiche quand même mais elle est vide Donc dans ce cas autant ne pas l'afficher du tout, il suffit de mettre les balises <select> à l'intérieur du if (la ou tu testes si il y a des options) <?php $query = mysql_query("SELECT * FROM csv_ds WHERE id='$id'"); // AFFICHAGE DES OPTIONS echo "<form action='options_ok.php' method='post'>\n"; $ligne = mysql_fetch_array($query); //On récupère les champs option et on regarde si il y a quelque chose dedans if (!empty($ligne['options'])) { echo " <select name='options'>\n"; //Si il y a quelque chose dedans on récupère les différents éléments séparés par des virgules $lesoptions=explode(",",$ligne['options']); //La en fait j'ai mis les options séparées dans un tableau en php, ensuite plus qu'à faire une boucle pour afficher chaque valeur du tableau foreach($lesoptions as $valeur) { echo "<option value='".$valeur."'>".$valeur."</option>\n"; } echo "</select>\n"; } echo "<input type='submit' value=\"Choississez une option\"></form>\n"; ?> La fonction $_POST['options'] est toujours utile ? Oui la valeur que tu auras choisi dans la liste sera récupérable sur la page options_ok.php avec la variable $_POST['options'] Voilà vive le PHP :) Edited August 21, 2008 by zig Quote Link to comment Share on other sites Partagez cette page :
spacemarmotte Posted August 21, 2008 Author Report Share Posted August 21, 2008 Voilà vive le PHP :) tu m'étonne !! mais je fais partie des vieux C** qui ont fait des sites statiques en html pur !! Lol !! Un Grand Grand merci Zig :D Avec un peu de boulot, j'aurai bientôt fini ! Je te dois le champ' (ou 30l. de Bioethanol si tu préfère :+ ) Quote Link to comment Share on other sites Partagez cette page :
zig Posted August 21, 2008 Report Share Posted August 21, 2008 hehe ok :) Plutôt le champ car mon moteur n'est pas encore compatible avec le bioethanol ;) Quote Link to comment Share on other sites Partagez cette page :
spacemarmotte Posted August 21, 2008 Author Report Share Posted August 21, 2008 Juste 1 truc, le menu disparait s'il n'y a pas d'option mais le bouton reste... y'a une astuce pour le faire disparaitre aussi ? Quote Link to comment Share on other sites Partagez cette page :
zig Posted August 21, 2008 Report Share Posted August 21, 2008 (edited) Effectivement Fais la même chose qu'avec les <select> Mets le bouton à l'intérieur du if (la ou tu testes si des options existent) Edited August 21, 2008 by zig Quote Link to comment Share on other sites Partagez cette page :
spacemarmotte Posted August 21, 2008 Author Report Share Posted August 21, 2008 Nickel... Encore merci ;-) Quote Link to comment Share on other sites Partagez cette page :
Trismegiste Posted August 23, 2008 Report Share Posted August 23, 2008 je galere depuis ce matin en essaynt toutes le combinaisons de foreach mais je suis pas doué :( je voudrai avec le code de zig, ajouter Option à coté de Option Ref pour que cela s'affiche comme ça Option - Ref blanc - 123 b rouge - 123 r noir -123 n mais je n'arrive qu'a faire ce genre de truc blanc - 123 b 123 r 123 n rouge - 123 b 123 r 123 n noir -123 b 123 r 123 n merci ;) Quote Link to comment Share on other sites Partagez cette page :
zig Posted August 23, 2008 Report Share Posted August 23, 2008 tu veux afficher deux variables dans la liste déroulante ? Quote Link to comment Share on other sites Partagez cette page :
Trismegiste Posted August 23, 2008 Report Share Posted August 23, 2008 oui tout a fait Quote Link to comment Share on other sites Partagez cette page :
zig Posted August 23, 2008 Report Share Posted August 23, 2008 (edited) Un truc comme ça ;) echo "<option value=\"".$valeur."\">".$option." - ".$optionref."</option>\n"; Edited August 23, 2008 by zig Quote Link to comment Share on other sites Partagez cette page :
Trismegiste Posted August 23, 2008 Report Share Posted August 23, 2008 oui c'est que j'essai mais je m'embrouille avec les boucles :( Quote Link to comment Share on other sites Partagez cette page :
zig Posted August 23, 2008 Report Share Posted August 23, 2008 Affiche le code que tu as fait Quote Link to comment Share on other sites Partagez cette page :
Trismegiste Posted August 23, 2008 Report Share Posted August 23, 2008 (edited) j'y suis presque, la ça marche mais faut que je remplace tout ces chiffre par $i :) $lesoptions=explode(",",$mainProduct["Options"]); $optionsref=explode(",",$mainProduct["OptionsRef"]); $options=array($lesoptions[0] => $optionsref[0], $lesoptions[1] => $optionsref[1], $lesoptions[2] => $optionsref[2], $lesoptions[3] => $optionsref[3], $lesoptions[4] => $optionsref[4], $lesoptions[5] => $optionsref[5], $lesoptions[6] => $optionsref[6], $lesoptions[7] => $optionsref[7], $lesoptions[8] => $optionsref[8]); foreach ($options as $cle=>$valeur) { if (!empty($options)) { echo "<option value='".$valeur."'>".$valeur." - ".$cle."</option>\n"; } } Edited August 23, 2008 by Trismegiste Quote Link to comment Share on other sites Partagez cette page :
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.