Ajax通过jquery回调Wordpress上的php文件



我在Wordpress中尝试使用Ajax时遇到以下情况。

1。要调用的文件只有一个很小的代码,如:<?php echo "Whatever" ?>

2.按钮onclick:调用

<button id="ajaxbtn" onclick="showPopup()" class="btn-shape"></button>
<div id="ajax-input"></div>

3。Functions.php

add_action( 'wp_enqueue_scripts', 'myajax_data', 99 );
function myajax_data() {
wp_localize_script('ajax-wear', 'myajax',
array(
'ajax_url' => admin_url('admin-ajax.php')
)
);
}

add_action('wp_ajax_tablo', 'tablo');
add_action('wp_ajax_nopriv_tablo', 'tablo');
function tablo() {
ob_start();
get_template_part(get_stylesheet_directory_uri() . 'extra-wear' );
$result = ob_get_contents();
ob_end_clean();
$return = array('content' => $result);
wp_send_json($return);
wp_die();
}

4.Jquery

jQuery("#ajaxbtn").click(function() {
jQuery.ajax({
type: 'post',
dataType: 'json',
url: myajax.ajax_url,
data: {
action: 'tablo'
},
success: function(response) {
jQuery('#ajax-input').html(response.content);
}
});
});

5。当前输出。在控制台中存在XHR完成加载的信息:Post";http://"但实际上什么都没有发布。

有人知道那个代码可能出了什么问题吗?我的问题是重点。3.非常感谢任何好的建议。

get_stylesheet_directory_uri()显然不是在该函数中构建调用文件的路径的正确方法。修改后返回内容。

在我看来,您有两个问题:

  1. dataType:'json'参数,很可能是因为您没有以json格式发送数据
  2. ";response.content";应该只是";响应">

此外,不知道您传入的URL是否为";myajax.ajax_url";在这段代码之前已经声明了吗?

还有一件事,";成功;自jQuery 1.8以来已折旧,现在应该使用done((。

考虑到所有这些,不如尝试一下,看看它是否有效?

$.ajax({
type: 'post',
url: 'path/to/your-ajax-file.php',
data: { action: 'tablo' }
}).done(function(response) {
console.log(response);
$('#ajax-input').html(response);
});

我添加了一个console.log(响应(;函数中的行,这样您也可以在JavaScript控制台中看到结果,在脚本工作后将其删除!

最新更新