Problème dans le Js..
mikis69
Messages postés
168
Date d'inscription
Statut
Membre
Dernière intervention
-
mikis69 Messages postés 168 Date d'inscription Statut Membre Dernière intervention -
mikis69 Messages postés 168 Date d'inscription Statut Membre Dernière intervention -
Bonjour tout le monde,
En fait voilà, je fais un site internet et j'ai un problème lors de l'appel d'un script js dans ma page php.
Donc j'ai un lien :
Quand on clique sur ce lien, j'ai envie que l'on affiche une alert avec dessus "ajouté à votre panier" ou sinon "erreur".
Voilà le script :
Et voilà le code de la page addPanier.php (qui est utilisé quand on clique sur le lien)
PROBLEME :
- Rien ne s'affiche lorsque je clique sur le lien (mais l'article se met bien dans le panier), je suppose donc que le problème vient du script JS mais pas d'idée..
Merci pour votre aide ^^
En fait voilà, je fais un site internet et j'ai un problème lors de l'appel d'un script js dans ma page php.
Donc j'ai un lien :
<td> <a class="add" href="index.php?page=addPanier&id=<?= $plat->idplat ?>"><img src="./images/addcaddie.gif"/></a>
Quand on clique sur ce lien, j'ai envie que l'on affiche une alert avec dessus "ajouté à votre panier" ou sinon "erreur".
Voilà le script :
$(".add").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 = 'index.php?page=panier' } } }, 'json'); return false; });
Et voilà le code de la page addPanier.php (qui est utilisé quand on clique sur le lien)
try { $plat = $mg->getPlat($_GET['id']); $panier->add($plat[0]->idplat); $json['error'] = false; $json['message'] = 'Le produit a bien été ajouté à votre panier'; } catch (PDOException $ex) { $json['message'] = "Ce produit n'existe pas"; }
PROBLEME :
- Rien ne s'affiche lorsque je clique sur le lien (mais l'article se met bien dans le panier), je suppose donc que le problème vient du script JS mais pas d'idée..
Merci pour votre aide ^^
A voir également:
- Problème dans le Js..
- Copiez l'image dans un logiciel d'édition d'images ou un outil en ligne comme js paint ou pixlr e. remplissez les cases en suivant le code couleur. des cases supplémentaires vont se remplir automatiquement. que représente le dessin ? - Forum Graphisme
- Arrondi js - Forum Javascript
- Pixlr - Forum Graphisme
- Arrondir js - Forum Webmastering
- Pb d'arrondi en javascript ✓ - Forum Windows
4 réponses
Bonjour,
Fais un echo de ta variable dans ton fichier PHP.. sinon AJAX ne pourra pas la récupérer...
Fais un echo de ta variable dans ton fichier PHP.. sinon AJAX ne pourra pas la récupérer...
try { $plat = $mg->getPlat($_GET['id']); $panier->add($plat[0]->idplat); $json['error'] = false; $json['message'] = 'Le produit a bien été ajouté à votre panier'; } catch (PDOException $ex) { $json['message'] = "Ce produit n'existe pas"; } echo json_encode($json); ?>
Ah, il semble que la fonction json_encode() ne supporte pas les accents.
C'est moche, mais je souhaite que tout fonctionne alors qu'on recherche une solution.
//Ciblons le problème. Reprend ton Js intial et essaie ceci... $json['message'] = 'Le produit a bien ete ajoute a votre panier';
C'est moche, mais je souhaite que tout fonctionne alors qu'on recherche une solution.
Personne n'a une petite idée.. ?
de pourquoi
$(".add").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 = 'index.php?page=panier'
}
}
}, 'json');
return false;
});
Connait la variable $data mais n'affiche pas les alertes et lorsque l'on retire
'json' donc, on ne connait pas la variable $data.. (normal je pense.. Mais les alertes s'affichent sans données)
de pourquoi
$(".add").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 = 'index.php?page=panier'
}
}
}, 'json');
return false;
});
Connait la variable $data mais n'affiche pas les alertes et lorsque l'on retire
'json' donc, on ne connait pas la variable $data.. (normal je pense.. Mais les alertes s'affichent sans données)
J'ai copié/collé ton Js et simulé index.php et tout fonctionnait parfaitement. Assure-toi qu'au niveau de php le script ne retourne rien d'autre que le tableau encodé en json. Rien d'autre!
Sinon je n'en sais rien, il nous faudrait tout ton code et ce serait un travail de moine.
//Utilise cette fonction pour que ça fonctionne avec les accents. $json['message'] = utf8_encode($json['message']);
Sinon je n'en sais rien, il nous faudrait tout ton code et ce serait un travail de moine.
1 - N'oublies pas ...
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
2 - .. Sunr a raison.. c'est juste une question d'encodage.
Avec ceci.. ton code fonctionne très bien :
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
2 - .. Sunr a raison.. c'est juste une question d'encodage.
Avec ceci.. ton code fonctionne très bien :
$json['message'] = utf8_encode('Le produit a bien été ajouté à votre panier');
Merci pour vos réponses !
Désolé pour le retard, je suis passé à un autre projet (que je devais finir pour mes examens)
Donc voilà mon js :
Voilà mon php :
Voilà le resultat lorsque j'ajoute un produit à mon panier :
"Undefined. Voulez vous consulter votre panier ?"
-Si je clique sur ok, je suis redirigé vers mon panier donc ça c'est bon
-Si je clique sur annuler, je reste sur le menu donc ça c'est bon aussi
Je ne vois absolument pas ce que mon fichier php peut retourner d'autre vu qu'il n'y a aucun return..
Encore désolé pour le retard et merci pour votre aide..
Désolé pour le retard, je suis passé à un autre projet (que je devais finir pour mes examens)
Donc voilà mon js :
$(".add").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 = 'index.php?page=panier'; } } }); return false; });
Voilà mon php :
<?php $json = array('error' => true); if(isset($_GET['id'])) { $mg = new PlatManager($db); try { $plat = $mg->getPlat($_GET['id']); $panier->add($plat[0]->idplat); $json['error'] = false; $json['message'] = utf8_encode('Le produit a bien été ajouté à votre panier'); } catch (PDOException $ex) { $json['message'] = "Ce produit n'existe pas"; } } ?>
Voilà le resultat lorsque j'ajoute un produit à mon panier :
"Undefined. Voulez vous consulter votre panier ?"
-Si je clique sur ok, je suis redirigé vers mon panier donc ça c'est bon
-Si je clique sur annuler, je reste sur le menu donc ça c'est bon aussi
Je ne vois absolument pas ce que mon fichier php peut retourner d'autre vu qu'il n'y a aucun return..
Encore désolé pour le retard et merci pour votre aide..
Où est passée la ligne :
echo json_encode($json);qui devrait se trouver en bas de ton fichier PHP ??
<?php $json = array('error' => true); if(isset($_GET['id'])) { $mg = new PlatManager($db); try { $plat = $mg->getPlat($_GET['id']); $panier->add($plat[0]->idplat); $json['error'] = false; $json['message'] = utf8_encode('Le produit a bien été ajouté à votre panier'); } catch (PDOException $ex) { $json['message'] = "Ce produit n'existe pas"; } } echo json_encode($json); ?>
Je viens de le rajouter (le copier/collé de mon post était l'ancienne version)
Donc même avec cette ligne en plus, je n'ai rien de plus..
J'ai toujours le undefined. Voulez vous consulter votre panier ? (Mais quand je me met la console du naviguateur, je vois qu'il m'affiche dans la page "addPanier.php"
{"ERROR":FALSE,"MESSAGE":"LE PRODUIT A BIEN \U00C3\U00A9T\U00C3\U00A9 AJOUT\U00C3\U00A9 \U00C3\U00A0 VOTRE PANIER"}
Donc même avec cette ligne en plus, je n'ai rien de plus..
J'ai toujours le undefined. Voulez vous consulter votre panier ? (Mais quand je me met la console du naviguateur, je vois qu'il m'affiche dans la page "addPanier.php"
{"ERROR":FALSE,"MESSAGE":"LE PRODUIT A BIEN \U00C3\U00A9T\U00C3\U00A9 AJOUT\U00C3\U00A9 \U00C3\U00A0 VOTRE PANIER"}
Voilà le message lorsque je l'affiche.. Il récupère bien le message et me dit que error = false.. Donc je ne sais pas ce qu'il peut y avoir.
Merci pour ta réponse ;)
C'est bon... çz correspond bien à ce que tu as codé dans ta page php
Si erreur = false alors il doit confirm(data.message + ". Voulez-vous consulter votre panier ?")
Si erreur = true alors il doit alert(data.message);
Mais aucunes alertes..
Sunr : Je viens d'essayer sans succès..