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
Réponse acceptée

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
Réponse acceptée

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

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

@plus

Pierre

Motel
Auteur

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

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

Pierre

Motel
Auteur

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

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

Motel
Auteur

Merci
voici l'alert que j'ai, je n'arrive pas à recupérer que le message

http://www.hostingpics.net/viewer.php?id=280060Capture.png![]()

je ne vois pas d'alert :D
@plus

Motel
Auteur

désolé je n'arrive pas à mettre l'image voilà le lien de l'image http://www.hostingpics.net/viewer.php?id=280060Capture.png :)

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

@plus

Pierre

Motel
Auteur

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 ?

Motel
Auteur

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.