et tu supprime via
ouCode:supprimerArticle($l) ;
?Code:supprimerArticle($r);
Version imprimable
et tu supprime via
ouCode:supprimerArticle($l) ;
?Code:supprimerArticle($r);
euh.. j'avoue là je ne sais pas.. :(
je pense que, comme je travaille dès le départ avec la reference, il faudrait que je supprime l'articles via la reference
Et même quand on clique sur "rafraichir", même symptome que le lien "supprimer article" et modification du nombre d'articles... arff :cry:
ça y yééé j'ai trouvé, tu m'as mis sur la voix du coup j'ai regardé du côté du lien
j'ai remplacé par ceci :Code:echo "<td><a href=\"".htmlspecialchars("panier.php?action=suppression&l=".rawurlencode($_SESSION['panier']['codeProduit'][$i]))."\">Supprimer article</a></td>";
Me reste plus qu' trouver le bug du bouton "rafraichir" et de la modification des articles.. mais là je ne vois pas du toutCode:echo "<td><a href=\"".htmlspecialchars("panier.php?action=suppression&r=".rawurlencode($_SESSION['panier']['codeProduit'][$i]))."\">Supprimer article</a></td>";
Tu as un message d'erreur pour la modification ?
non pas de message d'erreur.
Quand je clique sur rafraichir ou quand je modifie la quantité de mes articles, le libellé et le prix du prix que je vais chercher dans la base disparaissent. Et là je ne vois vraiment pas comment faire :cry:
tu n'as pas perdu le code qui va chercher les libelle dans une boucle superieur ?
euh... normalement je n'ai rien supprimer.
C'est à quel niveau precisément stp ?
OUI mais je demande de l'aide à l'auteur, moi sa fait que 6 semaines que je baigne dans le code je ne comprends encore pas tout... je susi encore un newbie :)
mais je ne comprends pas pourquoi ça efface les champs cherchés dans la base... j'affiche pourtant bien les variables...
ça n'empêche pas qu'il faut aussi chercher , se casser les dents est la meilleur manière de progresser .
Ceci etant dis si on regarde le code d'affichage :
A aucun moment tu vas chercher les libelles dont tu n'as que le prix et la ref.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 if (creationPanier()) { $nbArticles=count($_SESSION['panier']['codeProduit']); if ($nbArticles <= 0) echo "<tr><td>Votre panier est vide </ td></tr>"; else { for ($i=0 ;$i < $nbArticles ; $i++) { echo "<tr>"; echo "<td>".htmlspecialchars($_SESSION['panier']['codeProduit'][$i])."</ td>"; echo "<td><input type=\"text\" size=\"4\" name=\"QteArticle[]\" value=\"".htmlspecialchars($_SESSION['panier']['qteProduit'][$i])."\"/></td>"; echo "<td>".htmlspecialchars($_SESSION['panier']['prixProduit'][$i])."</td>"; echo "<td><a href=\"".htmlspecialchars("panier.php?action=suppression&l=".rawurlencode($_SESSION['panier']['codeProduit'][$i]))."\">Supprimer article</a></td>"; echo "</tr>"; } echo "<tr><td colspan=\"2\"> </td>"; echo "<td colspan=\"2\">"; echo "<br><b>Total : "; echo sprintf('%.2f',MontantGlobal()); echo " ttc</b>"; echo " | "; function prix_ttc($prix_ht,$taux_tva) { return ($prix_ht/(1+$taux_tva/100)); }
Mais je me casse les dents :) !! je me suis HT un bouquin PHP5.é et j'ai recup un bouquin SQLServer 7 :) et j'apprends petit à petit
en ce qui concerne le code, si j'ai fait cela (j'avasi modifié entre j'ai du oublier de te le dire )
J'ai donc bien mon affichage des variables.. mais ça s'efface :'( snifCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 <?php if (creationPanier()) { $nbArticles=count($_SESSION['panier']['codeProduit']); if ($nbArticles <= 0) echo "<font size=3 color=ff0000 face=arial>Votre panier est vide</font>"; else { for ($i=0 ;$i < $nbArticles ; $i++) { echo "<tr>"; echo "<td>".htmlspecialchars($_SESSION['panier']['codeProduit'][$i])."</ td>"; echo "<td>".htmlspecialchars($l)."</ td>"; echo "<td><input type=\"text\" size=\"4\" name=\"QteArticle[]\" value=\"".htmlspecialchars($_SESSION['panier']['qteProduit'][$i])."\"/></td>"; echo "<td>".htmlspecialchars($p)."</td>"; echo "<td><a href=\"".htmlspecialchars("panier.php?action=suppression&r=".rawurlencode($_SESSION['panier']['codeProduit'][$i]))."\">Supprimer article</a></td>"; echo "</tr>"; } echo "<tr><td colspan=\"2\"> </td>"; echo "<td colspan=\"2\">"; echo "<br><b>Total : "; echo sprintf('%.2f',MontantGlobal()); echo " ttc</b>"; echo " | "; function prix_ttc($prix_ht,$taux_tva) { return ($prix_ht/(1+$taux_tva/100)); } echo sprintf('%.2f',prix_ttc(MontantGlobal(),19.6)); echo ' ht'; echo "</td></tr>"; echo "<tr><td colspan=\"4\">"; echo "<input type=\"submit\" value=\"Rafraichir\"/>"; echo "<input type=\"hidden\" name=\"action\" value=\"refresh\"/>"; echo "</td></tr>"; } } ?>
ouais mais ce bout de code :
$l et $p sont vide puisque tu ne vas pas chercher les infos dans ta base.Code:
1
2
3
4 echo "<td>".htmlspecialchars($l)."</ td>"; echo "<td><input type=\"text\" size=\"4\" name=\"QteArticle[]\" value=\"".htmlspecialchars($_SESSION['panier']['qteProduit'][$i])."\"/></td>"; echo "<td>".htmlspecialchars($p)."</td>";
si, au début du code que ej t'avais envoyé hier j'avais mis ceci :
(en tou debut de page panier.php)
Et ça marche bien tant que je ne modifie pas le nombre d'articles et tant que je ne clique pas sur rafraichirCode:
1
2
3
4
5
6
7
8
9
10
11
12
13 $connect=ODBC_connect("TESTPHP5","sa","sasa"); $sql="select top 1 TYPE,DESIGNATION,CODETVA,PRIXHT,PRIXTTC,POIDS,HAUTEVALEUR from produits where CODEPRODUIT = '".$_GET['r']."' "; $r = $_GET['r']; $q = intval($_GET['q']); $res=odbc_exec($connect, $sql) or die($sql."<br />".odbc_error()); $rs=odbc_fetch_row($res); $y= odbc_result($res,"TYPE"); $l= odbc_result($res,"DESIGNATION"); $t= odbc_result($res,"CODETVA"); $h= odbc_result($res,"PRIXHT"); $p= odbc_result($res,"PRIXTTC"); $k= odbc_result($res,"POIDS"); $v= odbc_result($res,"HAUTEVALEUR");
a ouuaiiis, et du coup quadn je rafraichi et quand j'ajoute des articles, au lieu d'avoir http://localhost/panier.php?action=ajout&r=121618&q=1 dans mon URL je n'ai plus que http://localhost/panier.php c'est pour cela qu'il ne récupère rien.
Arf... ça devient compliqué lol
Tout a fait.
Maintenant que tu as vu le problème , tu as 2 solution s :
La plus simple mais la plus lourde : tu fais comme je t'ai dis , tu vas chercher les ref et les prix a chaque affichage de panier / ligne
La moins simple mais la plus légère , tu stocke en session le libelle et le prix au moment de l'ajout du produit en panier.
ça te fait moins d'accès a la base , et un script moins long a s'exécuter.
Bon bah merci au moins c'est sûr je sais maintenant d'où vient mon probleme.
Je ne sais pas encore comment faire l'une ou l'autre chose que tu m'as dite, mais je vais essayer de chercher un peu...
Merci de ton temps c'etait bien gentil :)
Agréable fin de journée @+
Ju'