8771 sujets

Développement web côté serveur, CMS

Pages :
(reprise du message précédent)

On résume :

Il faut que je post l + d + p pour que mon code fonctionne en pdo. Je suis en php 7.

Pour l'instant, il n'y a que l qui passe. Donc je doit "pousser" d et p.

Avec le code ci-dessus, le code fonctionne mais à moitié. Le truc, c'est que je ne sais comment "pousser" en plus d et p ?

Je vais y arriver, c'est une bricole à mon avis Smiley murf
Modifié par Tintin75 (19 Mar 2017 - 09:10)
voilà avec PDO:
Il faut faire un prepare ...

<?php 
                $connexion = new PDO('mysql:host=127.0.0.1;dbname=basetest','root','xxxxx');
                $connexion->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
                
                $sql='SELECT * FROM Choix JOIN Articles ON Choix.l = Articles.l';
                
                $result=$connexion->prepare($sql);
                
  	        $result->execute();

                while ($data = $result->fetch()) {
	  		
                        print_r($data);
			echo "<option value=\"".$data['l']."\">". $data['diametre']. " - " . $data['d']."</option>";
			}
			//$data['l'] = $_POST['l'];
			//$data['d'] = $_POST['d'];
                $connexion->close();
	 ?>


Bonne journée
J'ai plus le bouton envoi !!

La connexion à la bdd, je l'ai sur un input.
Modifié par Tintin75 (19 Mar 2017 - 09:11)
C'est fait, ça fonctionne pas Smiley bawling

Si j'ai pas : $data['l'] = $_POST['l']; /* Le code fonctionne pas
Modifié par Tintin75 (19 Mar 2017 - 09:11)
as-tu la combo et le bouton ?

Quand tu inspectes la page (j'utilise chrome) que vois-tu comme erreur?

Qu'est-ce que tu cherche à faire avec ces 2 lignes ?
$data['l'] = $_POST['l'];
$data['d'] = $_POST['d'];

est-ce que tu passes des données à ta page via un formulaire ou avec ajax?
Parce-ce que $_POST['l'] ou $_POST['d'] ne seront valorisés que de c'est 2 façons!
Je cherche à récupérer :

$data['l'] = $_POST['l'];
$data['d'] = $_POST['d'];

Pour les passer dans un panier d'achat.

Je récupère bien l dans mon panier, mais pas d.

J'explique :
Menu déroulant avec le diamètre des articles.

Le client clique sur son choix dans le menu et ça passe au panier.

Lorsque je clique sur un diamètre, ça passe bien au panier mais pas d.
Modifié par Tintin75 (18 Mar 2017 - 09:53)
ton formulaire ne récupère que la valeur dans value du tag option, c'est pour cela que tu n'aura dans $_POST que $_POST['l']
Et je peux faire comment ?

Si j'arrive à récupérer l,d,p je suis sauvé, c'est dans la poche.

Merci de ton aide. Smiley cligne
Modifié par Tintin75 (18 Mar 2017 - 10:08)
tu peux bricoler ne concaténation des valeurs que tu veux pour valoriser value mais honnêtement ce n'est pas dans les bonnes pratiques...
sinon je dois m'absenté et pour les bonnes pratiques il faut du temps....
laisse le post ouvert et je te répondrais plus tard

by
Merci, j'ai d dans mon sélecteur, donc la valeur d passe bien. Il faut juste arriver à la pousser dans le panier, comme l.
Modifié par Tintin75 (18 Mar 2017 - 10:14)
a écrit :
tu peux bricoler ne concaténation des valeurs que tu veux pour valoriser value mais honnêtement ce n'est pas dans les bonnes pratiques...


Honnêtement c'est simple et ça fonctionne donc c'est tout à fait dans les bonnes pratiques. Smiley cligne

L'autre solution c'est de donner un identifiant pour chaque paires longueur/diamètre.

Si p c'est un identifiant produit, il faut l'envoyer avec un input hidden.
J'explique le code:

Si l(libellé) est affiché ça trouve dans la base de donnée d pour description.

J'ai dans la panier l mais pas la description.

Dans mon panier, lorsque j'indique l -> d,p,s ... S'affiche.

Menu déroulant avec la liste des articles, je veux que lorsque le client clique sur un choix ça envoi direct panier via un bouton Valider.

Le code fonctionne, menu déroulant avec liste, je sélectionne mon article mais je n'ai que l qui s'affiche dans le panier.

J'ai bien d qui s'affiche dans la sélection, je veux récupérer la valeur de la sélection pour la balancer dans le panier.

Comment récupérer la description de l'article, si article sélectionné dans mon sélecteur ?
Modifié par Tintin75 (18 Mar 2017 - 11:50)
Donc la solution mon problème, c'est de faire un input hidden. ?
Modifié par Tintin75 (18 Mar 2017 - 13:41)
Le truc c'est qu'aucun des noms de variables ou de formulaire que tu utilises n'est explicite, d pour Diamètre ou Description puis p, s. Bref, c'est pas clair et tu ne peux pas avoir de code solide en nommant tes variables comme tel. Si tu peux expliciter les champs de tes 2 tables et mettre le code de ton panier ce serait plus facile.

D'autre part tu veux faire 2 requêtes, une pour ta liste de choix et l'autre pour ton panier hors je vois que tu bricoles ton select depuis un moment. Le but du select est de lister tout les choix pour ton utilisateur, c'est bien ça ?

Ensuite sur ton panier tu dois pourvoir récupérer ton produit à partir de ton 'l' dans ta table choix, c'est donc cela qu'il faut envoyer en POST sur ta page panier. Là seulement tu fais une deuxième requête pour retrouver le produit et les choix de ton utilisateur.
Meilleure solution
Bzh, c'est ça bien ça.

Ensuite sur ton panier tu dois pourvoir récupérer ton produit à partir de ton 'l' dans ta table choix, c'est donc cela qu'il faut envoyer en POST sur ta page panier. C'est bien ça.
Modifié par Tintin75 (19 Mar 2017 - 09:12)
Il faut que j'indique le l de mon sélecteur pour que ça fonctionne.

Le truc, c'est que je n'arrive pas à trouve la bonne ligne de code ? Smiley confus

Ca plante Smiley ohwell
Modifié par Tintin75 (19 Mar 2017 - 09:12)
J'ai pigé le truc,

une requête pour le sélecteur
une requête pour la mise au panier via le choix du sélecteur.

Reste à coder ça Smiley ohwell
J'ai bien mis mes deux requêtes, mais ça ne change rien. Je dois pas être loin ... Smiley murf

Je me plante ou ? Le boulet de la semaine, si c'est pas du mois c'est bibi Smiley lol
Modifié par Tintin75 (18 Mar 2017 - 16:46)
Pages :