Bonjour,
Voila je rencontre un petit problème avec mon code.
J'ai regardé le tuto de Grafikart sur le panier.
app.js
(function($){
$('.ajouter_panier').click(function(event){
event.preventDefault();
$.getJSON($(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{
//On injecte à la balise nb_jeux, la valeur nb_jeux
$('#nb_jeux').empty().append(data.nb_jeux);
//On injecte à la balise prix_total, la valeur prix_total
$('#prix_total').empty().append(data.prix_total);
}
}
});
return false;
});
})(jQuery);
panier_ajouter
<?php
require 'header.php';
require 'footer.php';
$json = array('error' => true);
//Si le jeu existe bien dans le panier
if(isset($_GET['id'],$_GET['stock']))
{
//On récupère l'ensemble des jeux
$reqpanier=$bdd->prepare('SELECT idjeu, stock FROM jeux WHERE idjeu=:idjeu AND stock=:stock');
//On execute la requête
$reqpanier->execute(array('idjeu' => $_GET['id'],'stock' => $_GET['stock']));
//On stocke les éléments dans une variable qui retourne un tableau
$jeu = $reqpanier->fetchAll(PDO::FETCH_OBJ);
//Si le jeu n'existe pas
if(empty($jeu))
{
$json['message']= 'Ce jeu n\'existe pas !';
}
//ajoute le jeu au panier
$panier->ajouter($jeu[0]->idjeu,$jeu[0]->stock);
$json['error'] = false;
$json['nb_jeux'] = $panier->nb_jeux();
$json['prix_total'] = $panier->prix_total();
$json['message']= "Le jeu a bien été ajouté !";
}
//Sinon pas de jeu dans le panier
else
{
$json['message']="Vous n'avez pas ajouté de jeu à votre panier !";
}
//Affiche le résultat du json
echo json_encode($json);
?>
j'aimerais l'affichage de la fenêtre de confirmation lors de l'ajout d'un jeu.
j'obtiens la page mais à la place de la fenêtre j'ai ceci qui s'affiche,
{"error":false,"nb_jeux":10,"prix_total":199.9,"message":"Le jeu a bien \u00e9t\u00e9 ajout\u00e9 !"}
j'ai changé en utf8 avec meta charset mais rien. Est ce un problème de la methode confirm() ?
Peut-être que tu as des erreurs au niveau de la console (javascript), as-tu regardé de ce côté là?
(Preserve les logs, au cas où :])
Aussi peut-être que tu ne retournes pas que du JSON, mais aussi du HTML. (Je vois des require, header.php, footer.php)
Ne retourne que ton JSON lorsque tu fais une requête AJAX.
C'est un comportement par défaut des fonctions json, qui échappe les jeux de caractères multi-octets unicode.
Si tu veux désactiver ce comportement, il te faut ajouter une constante prédéfinie de JSON qui est JSON_UNESCAPED_UNICODE
.
echo json_encode(...);
// @return {"error":false,"nb_jeux":10,"prix_total":199.9,"message":"Le jeu a bien \u00e9t\u00e9 ajout\u00e9 !"}
echo json_encode(..., JSON_UNESCAPED_UNICODE);
// @return {"error":false,"nb_jeux":10,"prix_total":199.9,"message":"Le jeu a bien été ajouté !"}
Mais normalement ça ne devrait pas te déranger... Si ?
Ou alors j'ai mal compris?
En fait normalemen je devrais avoir une fenêtre de confirmation dû à confirm() et je dois cliquer sur valider en js. Mais à la place il retourne ce message donc j'ai l'inpression que la fenêtre d'alerte ne fonctionne pas mais je regardais et je ne vois toujours pas le problème =/
Merci ! C'est bon j'ai touvé j'ai le footer je ne le mettais pas en bas .. honte à moi ^^'