Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 谷歌在ajax上的图表只在第一次起作用_Php_Javascript_Jquery_Google Visualization - Fatal编程技术网

Php 谷歌在ajax上的图表只在第一次起作用

Php 谷歌在ajax上的图表只在第一次起作用,php,javascript,jquery,google-visualization,Php,Javascript,Jquery,Google Visualization,这是一个两个问题,我的代码的实际状态是: <script type="text/javascript"> init_ui(); function init_ui() { $("[rel='tooltip']").tooltip(); $(".ajax_link").live("click",function(){ id = $(this).attr("id"); jQuery("#ajax_div")

这是一个两个问题,我的代码的实际状态是:

<script type="text/javascript">
init_ui();
function init_ui() {

        $("[rel='tooltip']").tooltip();

        $(".ajax_link").live("click",function(){
            id = $(this).attr("id");
            jQuery("#ajax_div").html('<img src="../../../../bundles/donepunctis/img/loading.gif" alt="loading...">');
            jQuery.ajax({
                url: '<?= $view['router'] -> generate('done_punctis_ajax_detail_data_url'); ?>' + '?id=' + id,
                success:function(result){
                    jQuery("#ajax_div").html('');
                    //alert(data);
                    chart.draw(data, options);
                }
     });
        })
}

var data;
var options;
var chart;

      // Load the Visualization API and the piechart package.
      google.load('visualization', '1.0', {'packages':['corechart']});

      // Set a callback to run when the Google Visualization API is loaded.
      google.setOnLoadCallback(drawChart);

      // Callback that creates and populates a data table,
      // instantiates the pie chart, passes in the data and
      // draws it.
      function drawChart() {

        // Create the data table.
        data = new google.visualization.DataTable();
        data.addColumn('string', 'Topping');
        data.addColumn('number', 'Slices');
        data.addRows([
          ['Mushrooms', 3],
          ['Onions', 1],
          ['Olives', 1],
          ['Zucchini', 1],
          ['Pepperoni', 2]
        ]);

        // Set chart options
        options = {'title':'How Much Pizza I Ate Last Night',
                       'width':400,
                       'height':300};

        // Instantiate and draw our chart, passing in some options.
        chart = new google.visualization.PieChart(document.getElementById('ajax_div'));

      }
</script>

init_ui();
函数init_ui(){
$(“[rel='tooltip']”)。tooltip();
$(“.ajax_link”).live(“单击”,函数(){
id=$(this.attr(“id”);
jQuery(“#ajax_div”).html(“”);
jQuery.ajax({
url:“+”?id=“+id,
成功:功能(结果){
jQuery(“#ajax_div”).html(“”);
//警报(数据);
图表绘制(数据、选项);
}
});
})
}
var数据;
var期权;
var图;
//加载可视化API和piechart包。
load('visualization','1.0',{'packages':['corechart']});
//将回调设置为在加载Google Visualization API时运行。
setOnLoadCallback(drawChart);
//创建并填充数据表的回调,
//实例化饼图,传入数据并
//画它。
函数绘图图(){
//创建数据表。
data=new google.visualization.DataTable();
data.addColumn('string','Topping');
data.addColumn('number','Slices');
data.addRows([
[‘蘑菇’,3],
[‘洋葱’,1],
[Olives',1],
[‘西葫芦’,1],
[意大利香肠,2]
]);
//设置图表选项
选项={'title':'我昨晚吃了多少比萨饼',
“宽度”:400,
‘高度’:300};
//实例化并绘制图表,传入一些选项。
chart=新的google.visualization.PieChart(document.getElementById('ajax_div');
}
目前,我只是忽略了ajax调用的返回,使用var数据上硬编码的图表管理数据

  • 如何在php端查看我的echo,以返回与我现在使用的相同的值,但从ajax返回中传递

  • 这段代码第一次运行正常,但是如果再次尝试单击ajax\u链接,将触发ajax调用,但google图表代码没有任何作用。为什么呢

  • 这段代码第一次运行正常,但是如果再次尝试单击ajax\u链接,将触发ajax调用,但google图表代码没有任何作用。为什么呢? 查看
    $调用中的成功回调。ajax
    调用:

    jQuery.ajax({
      url: '<?= $view['router'] -> generate('done_punctis_ajax_detail_data_url'); ?>' + '?id=' + id,
      success:function(result){
      jQuery("#ajax_div").html('');
        chart.draw(data, options);
      }
    });
    
    然后在
    drawChart
    中,您可以使用新数据填充图表:

    jQuery.ajax({
      url: '<?= $view['router'] -> generate('done_punctis_ajax_detail_data_url'); ?>' + '?id=' + id,
      success:function(result){
      jQuery("#ajax_div").html('');
        drawChart(data);
      }
    });
    
    function drawChart(myData) {
      // Create the data table.
      data = new google.visualization.DataTable();
      data.addColumn('string', 'Topping');
      data.addColumn('number', 'Slices');
      if(myData) {
        // TODO: add rows based on myData
      } else {
        data.addRows([
          ['Mushrooms', 3],
          ['Onions', 1],
          ['Olives', 1],
          ['Zucchini', 1],
          ['Pepperoni', 2]
        ]);
      }
      ...
    

    从jQuery1.7开始,不推荐使用
    .live()
    方法。使用
    .on()
    附加事件处理程序。较旧版本的jQuery用户应该优先使用
    .delegate()
    ,而不是
    .live()
    。让您的php为
    数据创建如文档所示的数组
    谢谢!,你能告诉我第二个问题吗,现在我正在尝试使用json,但我的格式有问题,我的表格非常简单:列上有性别和%,行上只有M:40%和F:60%。我的尝试:我几乎不会说PHP,所以我无法帮助你。我建议将该代码作为一个单独的问题发布,并将此问题简化为关于JavaScript的问题。周围有很多PHP专家,但我们现在可能用这些JavaScript东西吓跑了他们