Comment corriger les appels AJAX jquery?
Je travaille à essayer de faire de l'AJAX pour travailler avec Jquery. Mon gros problème a été que je ne sais pas vraiment comment faire pour savoir où je suis en train de faire une erreur. Je n'ai pas vraiment une bonne façon de déboguer des appels AJAX.
Je suis en train de configurer un admin de la page où l'une des fonctions que je veux faire est de changer le jeu d'autorisations dans ma base de données SQL. Je sais que le .cliquez sur la fonction est déclenchée, donc j'ai rétréci vers le bas, mais je ne sais pas où dans la chaîne de l'AJAX appel à la requête SQL va mal.
Mon .code js:
$('#ChangePermission').click(function(){
$.ajax({
url: 'change_permission.php',
type: 'POST',
data: {
'user': document.GetElementById("user").value,
'perm': document.GetElementById("perm").value
}
})
})
mon .php gestionnaire:
<?php
require_once(functions.php);
echo $_POST["user"];
try{
$DBH = mysql_start();
$STH = $DBH->prepare("INSERT INTO people ( username, permissions ) values (?, ?)");
$STH->bindParam(1, $_POST["user"]);
$STH->bindParam(2, $_POST["perm"]);
$STH->execute();
}
catch(PDOException $e){
echo $e->getMessage;
}?>
Où la mysql_start est l'installation d'une AOP fonction que j'utilise avec succès dans mes autres appels SQL.
J'ai fait des recherches et de recherche de tutoriels pour quelques jours maintenant et je ne peux pas pour la vie de me comprendre ce qui ne va pas. Existe-il des outils que je peux utiliser pour trouver où est l'erreur se produit? Je suis évidemment intéressé par la réponse à cette question en particulier, mais je pense que mon plus gros problème ici est que je n'ai aucune idée de l'endroit où pour commencer le débogage. Merci pour votre aide!
require_once('functions.php');
?- Voir si ce post aide: stackoverflow.com/questions/6991306/...
- tout d'abord, est-ce que votre
$_POST["user"]
vraiment avoir de la valeur? - Mise en place d'un succès et de gestionnaire d'erreur pour l'appel ajax et de mettre de l'exploitation forestière dans les deux. Vous pouvez ensuite voir ce qui se passe.
- Utilisation de la touche F12 dans IE, Renifleur de Réseau. Ou le renifleur de réseau intégré dans tous les navigateurs d'aujourd'hui. Mais vous pourriez être effectivement demander comment faites-vous suivre le résultat de l'appel Ajax, pas le débogage...
- mon functions.php fichier est le fichier où la mysql_start() la fonction est définie.
- J'utilise Ubuntu, donc je n'ai pas IE.
- Je l'ai dit, n'importe quel navigateur (la plupart ont un renifleur de réseau).
- Je ne suis pas sûr. Il semble que l'appel ajax n'est pas fait du tout. Ne devrait pas l'appel ajax créer?
Vous devez vous connecter pour publier un commentaire.
Faire de votre JQuery appel plus robuste par l'ajout de réussite et d'erreur de rappels comme ceci:
Object object
erreur pour moi.. Pas sûr de savoir comment procéderÀ l'aide de pratiquement n'importe quel navigateur moderne vous avez besoin d'apprendre l'onglet Réseau.
Voir ce DONC, après les propos de Comment déboguer les appels AJAX.
Vous pouvez utiliser l'onglet "Réseau" dans le navigateur (maj+ctrl+i) ou Firebug.
Mais une bien meilleure solution - à mon avis - est, en plus d'utiliser un programme externe comme Fiddler pour moniteur/catch le trafic entre le navigateur et le serveur.
si vous utilisez mozilla firefox que vous suffit d'installer un add-on appelé
firebug
.Dans votre page appuyez sur la touche f12 dans mozilla et firebug s'ouvre.
aller pour le
net
onglet dans firebug et dans cet onglet, aller dans lexhr
onglet.et de recharger votre page.
vous obtiendrez 5 options dans
xhr
Params
Headers
Response
HTML
etCookies
en allant dans
response
ethtml
vous pouvez voir la réponse que vous obtenez après votre appel ajax.S'il vous plaît laissez-moi savoir si vous avez une question.
Comme Firebug de Firefox (FF) extension est actuellement (comme par 01/2017) la seule façon de déboguer directement javascript réponses d'appels AJAX. Malheureusement, son développement est arrêté. Et depuis Firefox 50, Firebug aussi ne peut pas être installé plus en raison de problèmes de compatibilité 🙁 Ils genre de émulé FF outils de développement d'INTERFACE utilisateur pour rappel Firebug de l'INTERFACE utilisateur, d'une certaine façon.
Malheureusement, FF natif outils de développement ne sont pas en mesure de débogage javascript renvoyées directement par des appels AJAX. De même pour Chrome devel. outils.
J'ai désactivé les mises à niveau de FF à cause de ce problème, car j'ai grand besoin de déboguer JS de XHR appels à projet en cours. Donc, pas de bonnes nouvelles ici - espérons que la fonctionnalité de débogage direct JS réponses seront intégrées dans FF/Chrome developer tools bientôt.
vous pouvez utiliser le succès de fonction, une fois de voir cette jquery.ajax paramètres
nous pouvons aussi avoir d'erreur() la fonction
espère que cela vous aide
Installer Firebig pour voir où votre erreur qui se passe. Vous pouvez également configurer un rappel dans votre appel ajax pour retourner vos messages d'erreur à partir de votre PHP. Par exemple.
Il suffit d'ajouter cette après jQuery charges, et avant que votre code.
voici ce que je ferais pour le débogage et obtenir le php erreurs dans la console javascript.journal après un appel ajax:
sur le php côté, je commencerais par demander à tous d'erreur renvoyé à la chaîne concat et de l'écho comme un json codé réponse qui inclut php messages d'erreur le cas échéant.