Yop, je suis actuellement en train de coder la partie boutique de mon site. Je souhaite faire un systeme de porte monnaie virtuel. Après avoir rechargé son porte monnaie, l'utilisateur peut accéder à la partie boutique et cliquer sur le produit qu'il veut. En cliquant, l'utilisateur doit confirmer par un ptit message jscript et lorsque ceci est fait, son porte monnaie s'actualise.
Voici mon code actuel:
Affichage des produits de la boutique:
Fonctions javascript :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <div id="boutique"> <h1>Explications Boutique</h1> <?php $req = mysql_query('SELECT * FROM products'); $total = mysql_num_rows($req); $nbcol=2; // on compte le nombre de miniatures $nbpics = $total; // si on a au moins une miniature, on les affiche toutes if ($nbpics != 0) { echo '<table>'; for ($i=0; $i<$nbpics; $i++){ $products = mysql_fetch_array($req); if($i%$nbcol==0) echo '<tr>'; // pour chaque miniature, on affiche la miniature munie d'un lien vers la photo en taille réelle echo "<td><div class=\"produit\">"; echo "<div id=\"prod_titre\">".$products['name']."</div>"; echo "<div id=\"prod_contenu\">"; echo "<div id=\"prod_image\"><img src=\"images/Achats/$products[id].png\" ></div>"; // echo "<div id=\"prix\">"; echo "<div id=\"nprix\"><br/><br/><br/>".$products['prix']."</div></div>"; echo "<div id=\"img_prix\"><a href='' onclick=\"Actualiser($products[id], $products[prix])\"><img src=\"images/Achats/prix.png\" ></a></div></div><br /></td>"; // echo "<div id=\"nprix\">".$products['prix']."</div></div><br /></td>"; if($i%$nbcol==($nbcol-1)) echo '</tr>'; } echo '</table>'; } // si on a aucune miniature, on affiche un petit message <img src="../../bundles/tinymce/vendor/tiny_mce/plugins/emotions/img/smile.png" title=":)" alt=":)"> else echo 'Aucune image à afficher'; // } ?> </div> <script type="text/javascript" src="js/fonctions.js"></script>
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 function Actualiser(id, prix){ var xhr = new XMLHttpRequest(); // Lorsqu'un réponse est émise par le serveur xhr.onreadystatechange = function() { if (xhr.status == 200 && xhr.readyState == 4) { document.getElementById('content').innerHTML = xhr.responseText; // xhr.responseText contient exactement ce que la page PHP renvoi } }; xhr.open('GET', 'achat.php?id='+id); xhr.send(''); }
Page php qui est censée actualiser le porte monnaie de l'utilisateur:
Avez-vous des remarques? des suggestions?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <?php session_start(); include('config.php'); ?> <?php if(isset($_GET[id])){ $id_prod = $_GET[id]; $req1 = mysql_query('SELECT Aum FROM users WHERE id = $_SESSION[id]'); $req2 = mysql_query('SELECT prix FROM products WHERE id = $id_prod'); $products = mysql_fetch_array($req2); $aum = mysql_fetch_array($req1); $monnaie = $aum[0] - $products[0]; $sql = 'UPDATE users SET Aum='.$monnaie.' WHERE id='.$_SESSION['id']; // Ici on prend une valeur DU SERVEUR et surtout pas une valeur venant du JavaScript $req = mysql_query($sql); } ?>
Il n'y a aucune erreur javascript d'après la console sur chrome..pourtant ça ne fait pas ce que je veux.. Quand je clique sur un produit la page s'actualise seulement.
Merci d'avance
Peace
Partager