Bonjour à tous,
Alors voila, je suis actuellement le tuto sur le panier PHP.
Tout se passe bien, j'ai juste un problème pour la fonction app.js.
Le lien est bien bloqué, l'article est bien ajouté au panier, mais je n'ai pas l'alert et le confirm d'ajout au panier qui s'affiche.
De plus, dans l'inspecteur d'élément, après avoir cliqué sur un lien d'ajout au panier, dans le preview, tout le code html de la page est affiché, ainsi que je json encode, mais je ne vois pas les variables error et message affichées comme dans le tuto.
Une idée ?
Merci.
Merci pour la réponse. Le code est un peu le même que Grafikart :
$(document).ready(function() {
//Les script JavaScript utilisés lorsque l'on clique sur "Ajouter un article"
$('.addPanier').click(function(event) {
event.preventDefault();
$.get($(this).attr('href'),{}, function(data){
// ça bloque à partir de là
if(data.error){
alert(data.message);
}else{
//Si on clique sur le confirm
if(confirm(data.message + '. Voulez-vous consulter votre panier ?')) {
location.href = 'panier.php';
}else{
//$('#total').empty().append(data.total);
//$('#count').empty().append(data.count);
}
}
},'json');
return false;
});
});
Bonjour,
J'ai exactement le même problème que ladis, mais malheureusement personne n'a répondu à son message...
Est-ce que la solution a été trouvée depuis?
Ce code fonctionne bien avec les fichiers de base grafikart mais une fois adapté à mon site la popup de validation d'ajout d'article n'apparait pas, il y a juste le message JSON entre accolades qui s'affiche sur une nouvelle page. L'article est pourtant bien ajouté au panier.
voici ce qui est affiché une fois l'article ajouté:
{"error":false,"total":"1 400,00","count":21,"message":"Le produit a bien \u00e9t\u00e9 ajout\u00e9 \u00e0 votre panier"}
le 1er code dans la fenêtre addpanier.php
<?php
require '_header.php';
$json = array('error' => true);
if(isset($_GET'id'])){
$product = $DB->query('SELECT id FROM produits WHERE id=:id', array('id' => $_GET'id']));
if(empty($product)){
$json'message'] = "Ce produit n'existe pas";
}else{
$panier->add($product[0]->id);
$json'error'] = false;
$json'total'] = number_format($panier->total(),2,',',' ');
$json'count'] = $panier->count();
$json'message'] = 'Le produit a bien été ajouté à votre panier';
}
}else{
$json'message'] = "Vous n'avez pas sélectionné de produit à ajouter au panier";
}
echo json_encode($json);
et le second dans le fichier app.js:
(function($){
$('.addPanier').click(function(event){
event.preventDefault();
$.get($(this).attr('href'),{},function(data){
if(data.error){
alert(data.message);
}else{
if(confirm(data.message + '. Voulez vous consulter votre panier ?')){
location.href = 'panier.php';
}else{
$('#total').empty().append(data.total);
$('#count').empty().append(data.count);
}
}
},'json');
return false;
});
})(jQuery);
Merci à qui voudra bien m'aider sur ce problème,
je ne suis pas encore trop conpetent pour vous aider mais cela dit, j ai refais le tuto du panier en php avec mon propre theme,il fonctionne bien chez moi, je suis en apache 2.4 et php 5.4.9 mysql 5.1 sous windows
mon test est visible sous https://clara.dnsdojo.net/public/panier et je vous ai zipper mes fichiers du panier qui son disponible sous: https://clara.dnsdojo.net/public/ cette diponibilite ne restera en place que 48 heures
si cela peut vous aidez...
essayez votre code sous plusieurs navigateur ....
ie, chrome, firefox, safari n on pas le meme rendu..;
Merci pour votre réponse... Mais j'avais espéré que l'on puisse m'aider à modifier le code, j'ai déjà une version qui marche avec celle de grafikart, je pense que la votre aura la même structure donc ça ne résout pas mon problème. J'ai déjà pris pas mal de temps à l'adapter et j'aurais voulu garder ma structure. J'ai déjà essayé différents navigateurs cela ne change pas le problème... Puisque à la base la version grafikart marche sur Chrome que j'utilise alors que ma version n'affiche pas la popup de validation mais le message entre accolade sur le même navigateur.
Bonsoir, avez vous reglé votre problème d encodage ?
puisque \u00e9 est egale à é en unicode, et dans les tuto de grafikart il présice bien que nos fichiers soit encoder en utf8 ; peut être une piste...
{"error":false,"total":"1 400,00","count":21,"message":"Le produit a bien \u00e9t\u00e9 ajout\u00e9 \u00e0 votre votre panier"}
j ai l impression que cette ligne est simplement le resultat du " echo json_encode($json); " ??...
on obtient la meme struture de reponse sur un simple test d un tableau cette fonction
<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);
?>
compare le resultat la syntaxe de reponse est identique
Merci pour votre aide. Finalement j'ai repris à zéro en faisant bien attention à l'encodage et j'ai réussi a avoir la popup... Mais je n'ai jamais trouvé d'où venait l'erreur donc peut être oui un problème d'encodage entre tous mes fichiers.
Bonjour,
C'est peut-être un peu tard pour vous, donc voilà pour les prochains qui viendront !
Donc pour ma part, après quelques heures de galère, j'ai trouvé mon problème ( ridicule d'ailleurs )pour afficher cette fameuse alerte javascript qui confirme l'ajout d'un article au panier dans une fenêtre:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">
</script>
<script type="text/javascript" src="chemin_de_votre_dossier_js/js/app.js"></script>
voilà j'espère que votre problème était celui-ci, sinon bonne chance.
a+