Bonjour,
Je debute en ajax et j ai recuperé un tutto de panier pour une eventuelle boutique , j ai adapté le code mais je n arrive pas a mettre a jour en direct le total a payé et le compteur :
dans un formulaire ou j ai la taille,le nombre et l id du produit des que je valide addpanier.php j ai app.js qui devrait me retourner les bons elements mais j arrive pas a avoir la data.
le code addpanier.php
Code php : 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 $json = array('error' => true); if(isset($_GET['id'])){ $product = $DB->query('SELECT ID FROM BOUTIQUE_PRODUIT WHERE ID=:id',array('id'=>$_GET['id'])); if(empty($product)){ $json['message'] = "Ce produit n'existe pas"; }else{ $panier->add($product[0]->ID,$_GET['qty'],$_GET['size']); $json['error'] = false; $json['total'] = number_format($panier->total(),2,',',' '); $json['count'] = $panier->count(); $json['message'] = 'AJOUT OK'; } }else{ $json['message'] = "Vous n'avez pas sélectionné de produit à ajouter au panier"; } echo json_encode($json);
le code app.js
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 $(document).ready(function() { // lorsque je soumets le formulaire $('#ajoutpanier').on('submit', function() { // je récupère les valeurs var id = $('#id').val(); // je vérifie une première fois pour ne pas lancer la requête HTTP // si je sais que mon PHP renverra une erreur if(id == '') { alert('Les champs doivent êtres remplis'); } else { // appel Ajax $.ajax({ url: $(this).attr('action'), // le nom du fichier indiqué dans le formulaire type: $(this).attr('method'), // la méthode indiquée dans le formulaire (get ou post) data: $(this).serialize(), // je sérialise les données (voir plus loin), ici les $_POST success: function(data) { // je récupère la réponse du fichier PHP // j'affiche cette réponse $('#total').empty().append(data.total); $('#count').empty().append(data.count); $('#success').css("display","block"); $('#success').fadeIn(500).delay(3000).fadeOut(500); } }); } return false; // j'empêche le navigateur de soumettre lui-même le formulaire }); });
si vous avez une idee ca serait sympa , merci
cdt
Partager