Jump to content
WebFrance
  • Rejoignez WebFrance

    Inscrivez vous aujourd'hui et recevez le Guide gratuit du e-Business

     

Options et options_ref dans une boutique utilisant les CSV [php]


spacemarmotte
 Share

Recommended Posts

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

Link to comment
Share on other sites
Partagez cette page :

>> Nouveau : Découvrez la marketplace d'Achat / Vente de Sites !

  • Replies 95
  • Created
  • Last Reply

Top Posters In This Topic

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 by zig
Link to comment
Share on other sites
Partagez cette page :

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 by spacemarmotte
Link to comment
Share on other sites
Partagez cette page :

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]

Link to comment
Share on other sites
Partagez cette page :

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 by zig
Link to comment
Share on other sites
Partagez cette page :

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 by spacemarmotte
Link to comment
Share on other sites
Partagez cette page :

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 by zig
Link to comment
Share on other sites
Partagez cette page :

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 by spacemarmotte
Link to comment
Share on other sites
Partagez cette page :

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 by zig
Link to comment
Share on other sites
Partagez cette page :

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 ;)

Link to comment
Share on other sites
Partagez cette page :

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 by Trismegiste
Link to comment
Share on other sites
Partagez cette page :

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share




© WebFrance - Contact - Annonceurs - Conditions générales - Legal

×
×
  • Create New...