我的ajax调用输出总是显示0作为输出不知道为什么
在 functions.php
我有这个代码
function get_data() {
$abc = '1';
$result = $wpdb->get_results("SELECT * FROM ".$wpdb->options ." WHERE option_name LIKE '_transient_%'");
echo $result; //returning this value but still shows 0
wp_die();
}
add_action( 'wp_ajax_nopriv_get_data', 'get_data' );
add_action( 'wp_ajax_get_data', 'get_data' );
我的 ajax 调用在 javascript 中
$('body').on("click", ".re-reset-btn", function(e){
var panel = $('#re-compare-bar');
$.ajax({
type : "GET",
dataType : "json",
url : "/wp-admin/admin-ajax.php",
data : {action: "get_data"},
success: function(response) {
alert("Your vote could not be added");
alert(response);
}
});
$("#re-compare-bar-tabs div").remove();
$('.re-compare-icon-toggle .re-compare-notice').text(0);
});
我在没有使用插件的情况下在 wordpress 中进行 ajax 调用,但没有得到我正在传递的内容。即使我输出 $abc 仍然显示 0。
原文由 smarttechy 发布,翻译遵循 CC BY-SA 4.0 许可协议
在后端有 WordPress 自己定义的全局 ajaxurl 变量。
此变量不是由 WP 在前端创建的。这意味着如果你想在前端使用 AJAX 调用,那么你必须自己定义这样的变量。
这样做的好方法是使用 wp_localize_script。
假设您的 AJAX 调用在 my-ajax-script.js 文件中,然后为这个 JS 文件添加 wp_localize_script,如下所示:
本地化 JS 文件后,您可以在 JS 文件中使用 my_ajax_object 对象: