Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.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页面中创建jqplot图_Php_Javascript_Ajax_Jqplot - Fatal编程技术网

在php页面中创建jqplot图

在php页面中创建jqplot图,php,javascript,ajax,jqplot,Php,Javascript,Ajax,Jqplot,我试图通过使用apache服务器做一个小项目来学习php。我有一个php页面,我想使用从MySql查询中提取的数据显示一个带有jqplot的条形图。我已经有了一个查询,可以提供我想要的数据。问题是我不知道如何在jqplot图中实现这一点。我猜我需要做一个ajax调用,但如果我可以避免的话,我想这样做。到目前为止,我的php页面代码在这里。 条形图的javascript在这里。 我希望图表在第177行的div id=chartdiv中呈现。我必须想象6张图表。如果我能在这方面得到一些帮助,我相信我

我试图通过使用apache服务器做一个小项目来学习php。我有一个php页面,我想使用从MySql查询中提取的数据显示一个带有jqplot的条形图。我已经有了一个查询,可以提供我想要的数据。问题是我不知道如何在jqplot图中实现这一点。我猜我需要做一个ajax调用,但如果我可以避免的话,我想这样做。到目前为止,我的php页面代码在这里。 条形图的javascript在这里。

我希望图表在第177行的div id=chartdiv中呈现。我必须想象6张图表。如果我能在这方面得到一些帮助,我相信我可以使用相同的过程来构建其他的程序。

PHP无法创建javascript绘图并将其发送到下游客户端,但是在加载页面后,您也不必进行实际的AJAX调用。页面加载后,简单的javascript就足够了。如果您在PHP级别检索到所需的数据,则可以在客户端接收的HTML中使用javascript。实现这一目标的步骤如下:

  • 首先,使用PHP从MySQL数据库中检索所需的数据
  • 然后,在javascript中输出使用PHP检索到的绘图数据 代码块作为PHP发送给客户端的HTML的一部分
  • 使用PHP在页面加载时播种的数据执行javascript
  • 下面是一个简化的例子:

    <?php
    
    // Retrieve plot data from mysql
    $q = '...';
    $r = mysql_query($q);
    
    $plot_row1 = array();
    $plot_row2 = array();
    $plot_row3 = array();
    
    while ($row = mysql_fetch_array($r)) {
        // append values to $plot_row1, $plot_row2 and $plot_row3 arrays
    }
    
    $my_page_title = 'My first PHP/JS Combo Foray';
    
    ?>
    
    <html>
    <head>
        <script type="text/javascript" src="/scripts/jquery-1.5.2.min.js"></script>
        <script type="text/javascript" src="/scripts/my_plotter.js"></script>
    </head>
    <body>
    
    <h1><?php echo $my_page_title; ?></h1>
    
    <div id="chartdiv">
        Hold on, javascript is loading the plot ...
    </div>
    
    </body>
    </html>
    
    
    <script type="text/javascript">
    $(document).ready(function() {
    
        // we're combining the php array elements into a comma separated list
        // so that when the code is output javascript thinks it's an array.
        // if the $plot_row1 = array(1, 2, 3) then we'd get this:
        // 
        // row1 = [1, 2, 3];
        // 
        // if you needed quotes around the imploded php array values (if they
        // are strings where javascript is concerned) you could do this instead:
        // 
        // row1 = ["<?php echo substr(implode('","', $plot_row1), 0, -2); ?>"];
    
        row1 = [ <?php echo rtrim(implode(',', $plot_row1), ','); ?> ];
        row2 = [ <?php echo rtrim(implode(',', $plot_row2), ','); ?> ];
        row3 = [ <?php echo rtrim(implode(',', $plot_row3), ','); ?> ];
    
        // call your js function that creates the plot
        showBrittleness(row1,row2,row3);
    
        // add whatever js code you need to append the plot to $('#chartdiv')
    }
    </script>
    
    为此:

    var plot1 = $.jqplot('chartdiv', [s1, s2], {
    

    您的函数应该在'chartdiv'id元素中呈现绘图。看起来,$.jqplot函数的第一个参数是要在其中创建它的元素…

    PHP无法创建javascript绘图并将其发送到下游客户端,但在加载页面后也不必进行实际的AJAX调用。页面加载后,简单的javascript就足够了。如果您在PHP级别检索到所需的数据,则可以在客户端接收的HTML中使用javascript。实现这一目标的步骤如下:

  • 首先,使用PHP从MySQL数据库中检索所需的数据
  • 然后,在javascript中输出使用PHP检索到的绘图数据 代码块作为PHP发送给客户端的HTML的一部分
  • 使用PHP在页面加载时播种的数据执行javascript
  • 下面是一个简化的例子:

    <?php
    
    // Retrieve plot data from mysql
    $q = '...';
    $r = mysql_query($q);
    
    $plot_row1 = array();
    $plot_row2 = array();
    $plot_row3 = array();
    
    while ($row = mysql_fetch_array($r)) {
        // append values to $plot_row1, $plot_row2 and $plot_row3 arrays
    }
    
    $my_page_title = 'My first PHP/JS Combo Foray';
    
    ?>
    
    <html>
    <head>
        <script type="text/javascript" src="/scripts/jquery-1.5.2.min.js"></script>
        <script type="text/javascript" src="/scripts/my_plotter.js"></script>
    </head>
    <body>
    
    <h1><?php echo $my_page_title; ?></h1>
    
    <div id="chartdiv">
        Hold on, javascript is loading the plot ...
    </div>
    
    </body>
    </html>
    
    
    <script type="text/javascript">
    $(document).ready(function() {
    
        // we're combining the php array elements into a comma separated list
        // so that when the code is output javascript thinks it's an array.
        // if the $plot_row1 = array(1, 2, 3) then we'd get this:
        // 
        // row1 = [1, 2, 3];
        // 
        // if you needed quotes around the imploded php array values (if they
        // are strings where javascript is concerned) you could do this instead:
        // 
        // row1 = ["<?php echo substr(implode('","', $plot_row1), 0, -2); ?>"];
    
        row1 = [ <?php echo rtrim(implode(',', $plot_row1), ','); ?> ];
        row2 = [ <?php echo rtrim(implode(',', $plot_row2), ','); ?> ];
        row3 = [ <?php echo rtrim(implode(',', $plot_row3), ','); ?> ];
    
        // call your js function that creates the plot
        showBrittleness(row1,row2,row3);
    
        // add whatever js code you need to append the plot to $('#chartdiv')
    }
    </script>
    
    为此:

    var plot1 = $.jqplot('chartdiv', [s1, s2], {
    

    您的函数应该在'chartdiv'id元素中呈现绘图。$.jqplot函数的第一个参数似乎是创建它的元素…

    这取决于jqplot的工作方式。。。我只是在回答这个问题(如何将javascript与php功能合并)。。。我不是js专家。我建议查看jqplot文档——这就是我想要做的,快速更新:查看jqplot文档很清楚。现在更新帖子。这取决于jqplot的工作方式。。。我只是在回答这个问题(如何将javascript与php功能合并)。。。我不是js专家。我建议查看jqplot文档——这就是我想要做的,快速更新:查看jqplot文档很清楚。现在更新帖子。