0

我需要填充由 JavaScript 函数创建的图表。该图表应填充 MySQL DB 数据。我在myquery.php中定义了 SQL 查询。此 php 代码返回一个用于创建图表的数组。问题是如何执行myquery.php并获取我可以在 JavaScript 函数createChartControl中进一步使用的输出数组?

<script type="text/javascript" language="JavaScript">
function createChartControl(htmlDiv1)
{
   // Draw chart
}
(function(){
    createChartControl('schedule');
})();
</script>
4

2 回答 2

1

我强烈建议你在 JS 端使用 jQuery 库。( http://jquery.com/ )

1 - 没有 Ajax:(如果您的数据在页面加载时可用):

<script type="text/javascript" language="JavaScript">
var myData = <?php echo json_encode($myArray); ?>;

function createChartControl(htmlDiv1)
{
   // your code to draw chart
   // read myData a fill the chart
}
(function(){
    createChartControl('schedule');
})();
</script>

2 - 使用 ajax(使用 jQuery):

function loadMyData(){
 $.getJSON('ajax/myquery.php', function(data) {
  var items = [];

  $.each(data, function(key, val) {
    items.push(val);
  });

  $('<ul/>', {
    'class': 'my-new-list',
    html: items.join('')
  }).appendTo('body');
 });
}

有用的网站: http://php.net/manual/pt_BR/function.json-encode.php
http://api.jquery.com/jQuery.getJSON/
在 JavaScript 中解析 JSON?

于 2012-08-10T18:54:52.923 回答
1

当涉及到 AJAX 时, jQuery将使您的生活变得更加轻松。如果您真的反对使用库,您可以查看xmlhttprequest的示例,它可以在纯 javascript 中使用。

jQuery 看起来像:

function ajaxCall(){

    $.ajax({
         url: 'myquery.php',
         type: 'POST',
         data: {any_var: var_value},
         success: function(data) {
                  var returned_array = $.parseJSON(data)
                  createChartControl(htmlDiv1, returned_array)
                  }
    })
}

基本上,您将所需的任何数据发送到 myquery.php 中any_var,使用 检索 myquery.php 中的该值$_POST['any_var'],运行您的查询,然后json_encode您想要传递回您的 javascript 的数组,最后解析您返回data的成功函数成为一个可用的 javascript 对象。现在你可以用它做你想做的事,但在我的例子中你可以看到我将它发送returned_array到你的createChartControl()函数(它需要为你的数组添加一个参数。

多田,阿贾克斯魔法。

于 2012-08-10T18:44:46.767 回答