Saya punya masalah dengan AJAX mengembalikan 0 selalu!
Saya telah melakukan segalanya berdasarkan buku itu dan tidak tahu apa yang salah? Tolong bantu!!
Ini panggilan Ajax saya:
//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;
Dan fungsi di functions.php adalah:
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' )
untuk mendapatkan URL AJAX, bukan URL buatan.Jawaban:
Bisakah Anda menempatkan tindakan (ajaxConversion) di Data Anda dan periksa?
sumber
menggunakan
wp_die();
pada akhir fungsi AJAX memperbaiki masalah bagi saya.misalnya
sumber
Bagi saya triknya adalah menambahkan
wp_ajax_nopriv
tindakan. Saya menguji skrip di satu browser ketika saya login di WP admin, dan kemudian saya mencoba skrip yang sama di Chrome dan menyadari bahwa skrip tidak berfungsi. Setelah saya masukkanwp_ajax_nopriv
, semuanya mulai bekerja. :)sumber
Saya akan merekomendasikan menggunakan wp_send_json_success () dan wp_send_json_error () di sisi server. Anda tidak perlu khawatir tentang die () dll dan variabel "status" dikirim secara otomatis, ini jauh lebih bersih dengan cara ini. Sebagai contoh
Akan menghasilkan sesuatu seperti ini:
Jadi, Anda dapat dengan mudah mengekstraksi nilai-nilai dalam panggilan ajax Anda:
Hal umum lain yang pernah saya temui adalah kesalahan ketik pada nama tindakan. Itu harus wp_ajax_nopriv_ {action} atau wp_ajax_ {action} saat login. Sebagai contoh, wp-ajax_nopriv, adalah yang pernah saya lakukan beberapa kali di masa lalu.
sumber
Bagi saya itu adalah fakta bahwa saya menggunakan
return
alih-alihecho
dalam fungsi PHP saya. Mengubahnya untukecho
memperbaikinya.sumber