我的wordpress插件中有两个页面
索引。php图表。索引中的php。php我有一些内容和一些链接。。
<a onclick="show_trend()" >Trend</a>
单击此链接时,我有一个ajax功能,可以在图表中创建内容。php(我不知道这是否正确)
function show_trend() {
var data ="action=render_admin_charts_page";
jQuery.ajax({
type: "POST",
url: "../wp-admin/admin-ajax.php",
data: data,
dataType: \'json\',
success: function(data) {
alert(data);
//here i want to create html content
}
});
}
下面是我的php函数和钩子
function render_admin_charts_page() {
?>
<div class="wrap">
<div class="chart">
</div>
</div>
<?php
die();
}
add_action( \'wp_ajax_render_admin_charts_page\', \'render_admin_charts_page\' );
现在我得到0作为警报。
SO网友:dg4220
我看到两件事。你错过了一个行动电话-你需要
add_action( \'wp_ajax_render_admin_charts_page\', \'render_admin_charts_page\' );
add_action(\'wp_ajax_nopriv_render_admin_charts_page\', \'render_admin_charts_page\');
另外,从
render_admin_charts_page()
您需要将json数据类型更改为html。你的图表功能是输出html,所以你所需要做的就是输出它;你的
alert()
应该包含函数中的所有html。
还有一件事,如果这仍然是一个活的问题,为什么die()
在您的render_admin_charts_page()
作用该函数打印一条消息,这样也可能会干扰您的返回值。
SO网友:Hendrik Luehrsen
正如ungestaltbar所说,变量“data”应该包含一个对象,而不是字符串。
function show_trend() {
var data = {
action: "render_admin_charts_page"
}
jQuery.ajax({
type: "POST",
url: "../wp-admin/admin-ajax.php",
data: data,
dataType: \'json\',
success: function(data) {
alert(data);
//here i want to create html content
}
});
}
这应该可以做到。