J'ai un problème avec AJAX qui retourne toujours 0!
J'ai tout fait par le livre et je ne peux pas comprendre ce qui ne va pas? S'il vous plaît, aidez !!
Voici mon appel Ajax:
//Pass data through AJAX
var amountToConvert = price;
jQuery.ajax({
type:"POST",
url: "../../wp-admin/admin-ajax.php", // our PHP handler file
action: "ajaxConversion",
data: {
amount: amountToConvert
},
success:function(data){
alert(data);
},
error: function(errorThrown){
alert(errorThrown);
}
});
return false;
Et la fonction dans functions.php est:
function ajaxConversion(){
$amount = mysql_real_escape_string($_POST['amount']);
echo $amount;
die();
};
add_action('wp_ajax_nopriv_ajaxConversion', 'ajaxConversion');
add_action('wp_ajax_ajaxConversion', 'ajaxConversion');
admin_url( 'admin-ajax.php' )
pour obtenir l'URL AJAX, pas une URL composée.Réponses:
Pourriez-vous placer l'action (ajaxConversion) dans vos données et vérifier?
la source
l'utilisation
wp_die();
à la fin de la fonction AJAX a résolu le problème pour moi.par exemple
la source
Pour moi , l'affaire était d'ajouter l'
wp_ajax_nopriv
action. J'ai testé le script sur un navigateur lorsque j'étais connecté à WP Admin, puis j'ai essayé le même script dans Chrome et j'ai réalisé que le script ne fonctionnait pas. Après avoir miswp_ajax_nopriv
, tout a commencé à fonctionner. :)la source
Je recommanderais d'utiliser wp_send_json_success () et wp_send_json_error () côté serveur. Vous n'avez pas à vous soucier de die () etc. et la variable "status" est envoyée automatiquement, c'est beaucoup plus propre de cette façon. Par exemple
Se traduira par quelque chose comme ceci:
Ainsi, vous pouvez facilement extraire les valeurs de votre appel ajax:
Une autre chose courante que j'ai rencontrée est des fautes de frappe dans le nom de l'action. Ils doivent être wp_ajax_nopriv_ {action} ou wp_ajax_ {action} lorsque vous êtes connecté. Par exemple, wp-ajax_nopriv, est celui que j'ai fait plusieurs fois dans le passé.
la source
Pour moi, c'était le fait que j'utilisais
return
plutôt queecho
dans ma fonction PHP. Le changer pour leecho
corriger.la source