在wp-plugin内部添加jQuery脚本,该脚本接收由此插件内的php-函数生成的JSON格式的数据

时间:2012-12-27 作者:drake2300

我想补充一下Highstock 我的插件中的图表。它需要json格式的输入数据。但我在jQuery中使用默认json解析器时遇到了一些问题。我已经读过了this 文章,但仍然无法理解如何在插件中添加图表。

有人能描述一下getJSON() 在wp插件中工作,是否可以将插件中php函数的数据以json格式发送到插件中的jQuery脚本?

下面是highstock脚本的示例,我想将其放在我的插件中:

$(function() {
    $.getJSON(\'http://www.highcharts.com/samples/data/jsonp.php?filename=aapl-c.json&callback=?\', function(data) {
        // Create the chart
        window.chart = new Highcharts.StockChart({
            chart : {
                renderTo : \'container\'
            },

            rangeSelector : {
                selected : 1
            },

            title : {
                text : \'AAPL Stock Price\'
            },

            series : [{
                name : \'AAPL\',
                data : data,
                tooltip: {
                    valueDecimals: 2
                }
            }]
        });
    });
});
以及php代码,我想将其放入插件内的函数中:

global $wpdb;

$table=$wpdb->prefix."table_name";

$query=$wpdb->get_results("SELECT `date`,`value` FROM `".$table."` WHERE `date` BETWEEN \'2011\' AND \'2012\' ORDER BY `date` ASC; ", ARRAY_A);

$i=0;
for($j=0; $j<sizeof($query); $j++) {
    $result[$j][]=strtotime($query[$j][\'date\'])*1000;
    $result[$j][]=(float)$query[$j][\'value\'];
}
echo json_encode($result);
有人能帮忙吗?我真的厌倦了寻找解决办法。

1 个回复
SO网友:webaware

了解AJAX in Plugins, 然后看看是否可以根据Highcharts的需要调整此代码:

add_action(\'wp_ajax_wpse_77392_get_json\', \'wpse_77392_get_json\');
add_action(\'wp_ajax_nopriv_wpse_77392_get_json\', \'wpse_77392_get_json\');

function wpse_77392_get_json() {
    global $wpdb;

    $sql = "
        SELECT `date`,`value`
        FROM {$wpdb->prefix}table_name
        WHERE `date` BETWEEN \'2011\' AND \'2012\'
        ORDER BY `date` ASC;
    ";

    $results = $wpdb->get_results($sql);
    $json = json_encode($results);

    header(\'Content-type: application/json\');
    echo $json;
    exit;
}

结束

相关推荐

为什么admin-ajax.php会重定向到注销用户的主页?

我正在我的网站上使用wp polls插件。此插件依赖于使用表单的AJAX请求http://www.myfakewebsiteurl.com/wp-admin/admin-ajax.php?action=polls&view=process&poll_id=2&poll_2=8&poll_2_nonce=420d75e659当我登录时,这个请求工作正常:它从服务器中提取轮询结果,然后将它们显示在所需的网页上。但是,当我注销时,此请求会将我重定向到主页。因此,我没有显示投票结果