¡Tengo un problema con AJAX devolviendo 0 siempre!
He hecho todo por el libro y no puedo entender qué está mal. ¡¡Por favor ayuda!!
Aquí está mi llamada 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;
Y la función en functions.php es:
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' )
para obtener la URL AJAX, no alguna URL inventada.Respuestas:
¿Podría colocar la acción (ajaxConversion) en sus Datos y verificar?
fuente
usar
wp_die();
al final de la función AJAX solucionó el problema para mí.p.ej
fuente
Para mí, el truco era agregar
wp_ajax_nopriv
acción. Probé el script en un navegador cuando inicié sesión en WP admin, y luego probé el mismo script en Chrome y me di cuenta de que el script no funciona. Después de que pusewp_ajax_nopriv
, todo comenzó a funcionar. :)fuente
Recomendaría usar wp_send_json_success () y wp_send_json_error () en el lado del servidor. No necesita preocuparse por die (), etc. y la variable "estado" se envía automáticamente, es mucho más limpia de esta manera. Por ejemplo
Resultará en algo como esto:
Entonces, puede extraer fácilmente los valores en su llamada ajax:
Otra cosa común con la que me he encontrado son errores tipográficos en el nombre de la acción. Deben ser wp_ajax_nopriv_ {action} o wp_ajax_ {action} cuando inicie sesión. Por ejemplo, wp-ajax_nopriv, es uno que he hecho varias veces en el pasado.
fuente
Para mí fue el hecho de que estaba usando en
return
lugar deecho
en mi función PHP. Cambiándolo aecho
arreglado.fuente