Problème $.get() ajax

Par Motel, il y a 8 ans


Bonjour,

Voila je rencontre un petit problème depuis quelques jours .

Ce que je fais

je suis en train d'essayer d'intégrer un panier à mon site et là je suis bloqué sur mon code jquery le code fonctionne très bien, le produit et bien ajouter au panier mais le problème c'est que je n'ai aucun message d'erreur ou de succès au niveau du JSON

Voilà mon code jquery

$(document).ready(function(){ $(function() { $('.w49').click(function(e) { e.preventDefault(); $.get($(this).attr('href'), function(data, status){ if (data.error) { alert(data.msg); } else { alert(data.msg); } }); },'json'); }); });

Voilà le code de mon fichier cart.php

if(isset($_GET['token']) AND !empty($_GET['token'])) { $productToken = $db->query('SELECT * FROM products WHERE token = ?', [$_GET['token']])->fetch(); if($productToken) { $json = ['error' => true]; $cart = $db->query('SELECT * FROM cart WHERE token = ? AND client = ?', [$productToken->token, auth::client($db)->id])->fetch(); if(!$cart) { $json['error'] = false; echo "<pre>"; $json['msg'] = "C'est bon"; echo "</pre>"; $db->query("INSERT cart SET token = ?, reference = ?, client = ?, datetimes = NOW()", [$productToken->token, $productToken->reference, auth::client($db)->id]); } else { $json['msg'] = "le produit et déja ajouter"; } } else { $json['msg'] = "RIEN"; } echo json_encode($json); }

Ce que je veux

je veux pouvoir avoir le message de succes au d'erreur de mon JSON qui se situe dans mon fichier php cart.php

Merci pour votre aide.

13 réponses

Pierrot01, il y a 8 ans

Salut
le fichier cart.php doit renvoyer du JSON, ce n'est pas le cas.

@plus

Pierre

Motel, il y a 8 ans

Salut,
La page envoi bien du json jai mis cette fonction echo json_encode($json); ?

Pierrot01, il y a 8 ans

Salut,
certe, mais y a un echo < pre > et au autre echo < /pre > avant.
donc, pas au format json
@plus.

Pierre

Motel, il y a 8 ans

J'ai enlevé les echo et toujours rien Je suis perdu ?

Pierrot01, il y a 8 ans

fait ton appel ajax comme ça :

var url = $(this).attr('href'); $.get(url) .done(function(data) { console.log(data); alert( "success "+data ); }) .fail(function() { alert( "Erreur leture/ecriture panier" ); })

@plus

Pierre

Pierrot01, il y a 8 ans

je ne vois pas d'alert :D
@plus

Pierrot01, il y a 8 ans

à priori, le formulaire est soumis ;)
tu as bien le json en tête, mais le html suis.

@plus

Pierre

Motel, il y a 8 ans

D'accord tu sais comment je peux faire pour afficher que le messagerie JSON sans afficher le code html, j'ai essayé tout ce que je savais mais je n'arrive toujours pas ?

Pierrot01, il y a 8 ans

au lieu de prendre le click, tu prend le submit.

$('.w49').submit(function(e) { var url = $(this).attr('href'); /// cette ligne n'est pas bonne, je sais pas ou tu as mis le lien $.get(url) .done(function(data) { console.log(data); alert( "success "+data ); }) .fail(function() { alert( "Erreur leture/ecriture panier" ); }) ]}

si tu veux garder le click fait juste

$('#tonformulaire').submit(function(e) { e.preventDefault() return false; )}

@plus

Pierre

Kenor, il y a 8 ans

A priori, fait un "exit" après ton "echo json_encode" déjà.

Motel, il y a 8 ans

Merci beaucoup Pierrot01 et Kenor, j'ai réussi je suis trop content lol merci :)

fallait simplement mettre le exit aprés le json_encode.