无法使用json表显示Google Chart

时间:2014-07-23 16:16:20

标签: php sql wordpress wordpress-plugin hook

我对编码世界还很陌生,所以尽管wpdp类确实存在,但请对我过时的SQL连接表示怜悯。我知道这一点,但由于某些原因,它不起作用,这是另一个话题......

我尝试编写自己的插件来连接到我的sql数据库,查询一些东西然后提供带有jsontable的谷歌图表。代码工作如果我在一个独立的.php文件中使用它。但是,只要我激活do_action,就没有任何作用,我的整个页面都是白色的。

<?php
/*
Plugin Name: mm_gchart
Description: -
Version: 1.0.0
Author: MM
*/

function mm_gct_data() {
$con=mysqli_connect("localhost","xx","xx","xx");
// Check connection
if (mysqli_connect_errno()) {
//echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
//echo "Hello";
$sql="SELECT gewicht, wdh FROM testtable";
$query=mysqli_query($con, $sql);
$rows=array();
$table=array();
$table['cols'] = array(
    array('label' => 'Gewicht', 'type' => 'number'),
    array('label' => 'Wiederholungen', 'type' => 'number')
);
while ($r = mysqli_fetch_assoc($query)) 
{
$temp=array();
$temp[]=array('v' => (int) $r['gewicht']);
$temp[]=array('v' => (int) $r['wdh']);
$rows[]=array('c' => $temp);
}
global $jsonTable;
$table['rows'] = $rows;
$jsonTable = json_encode($table);
}

add_action('init', 'mm_gct_data'); 
//do_action( 'init','mm_gct_data' );
?>

如果有人能在我的代码上运用一些黑魔法然后提供一个简单的描述,我会非常高兴。

提前致谢!

回复后编辑:

非常感谢您的快速回复!如果do_action()命令不是我的空白页面的原因,那么是什么?

<html>
  <head>
    <!--Load the AJAX API-->
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script type="text/javascript">
    // Load the Visualization API and the piechart package.
    google.load('visualization', '1', {'packages':['corechart']}); 
    // Set a callback to run when the Google Visualization API is loaded.
    google.setOnLoadCallback(drawChart); 
    function drawChart() {
     // Create our data table out of JSON data loaded from server.
      var data = new google.visualization.DataTable(<?=$jsonTable?>);
      var options = {
        title: 'Testing',
        width: 600,
        height: 400
      };
      // Instantiate and draw our chart, passing in some options.
      var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
      chart.draw(data, options);
    }
    </script>
  </head>
  <body>
    <!--Div that will hold the pie chart-->
    <div id="chart_div"></div>

    <p>Everything went well..</p>
  </body>
</html>

1 个答案:

答案 0 :(得分:0)

您不应该在代码中调用do_action()。此操作挂钩内置于WordPress中,并将作为其运行的一部分自动调用。 WordPress网站上有一个Actions Run During a Typical Request的网站列表。

如果要为其他开发人员插入自定义操作挂钩,请调用do_action()。可以调用add_action()来向您的钩子添加事件。