【问题标题】:Creating fusioncharts from database with variable where-condition使用变量 where-condition 从数据库创建 fusioncharts
【发布时间】:2019-06-22 08:40:51
【问题描述】:

我正在使用我的数据库中的数据创建 FusionCharts。如果我使用代码中设置的变量设置静态 where 条件($kommunenr = '3001';),它会起作用。但是我希望网站的用户通过在表单字段中插入一个数字来选择图表所基于的数据,即 3018。所以变量的值应该来自用户的选择。但是当我测试变量时似乎是空的。

我的代码基于这些教程: https://www.fusioncharts.com/dev/using-with-server-side-languages/tutorials/php-mysql-charts https://www.youtube.com/watch?v=nqavhILvBVU https://a1websitepro.com/jquery-ajax-form-submit-with-php-processing/2/

我有以下文件:

valginfo.php(主页面)

skjema.js(从主页面的表单中获取数据(数字))

chart_sample.php(列出数据库中的数据)

app.js(创建图表)

我试图通过在主页上的 div 和 iframe 中发布来自 chart_sample.php 的内容来查找错误。当然还有谷歌搜索。

我在chart-data.php 中的查询(选择用于制作图表的数据):

$query = "SELECT * FROM valg19_kommune WHERE kommunenr = $kommunenr AND kandidatnr = 1 ORDER BY kommunenr, sortering, kandidatnr LIMIT 500";

如果变量是静态的就可以了,设置如下:

$kommunenr = '3001';

但是当我这样设置变量时,它看起来是空的:

$nr=$_POST['nr1'];
$kommunenr=$nr;

我希望将发布的数字存储为变量的值和查询的一部分,但事实并非如此。当我将chart_sample.php 中的查询和结果回显到主页上的一个div 中时,我看起来很完美:

SELECT * FROM valg19_kommune WHERE kommunenr = 3018 AND kandidatnr = 1 ORDER BY kommunenr, sortering, kandidatnr LIMIT 500
[{"label":"Fremskrittspartiet","value":"42","color":"#000099","tooltext":"Elisabeth Stene"},{"label":"H\u00f8yre","value":"64","color":"#3366ff","tooltext":"Benedicte Dyvik"},{"label":"Kristelig Folkeparti","value":"56","color":"#ffff00","tooltext":"Brynjar H\u00f8idebraaten"},{"label":"Senterpartiet","value":"45","color":"#00cc00","tooltext":"Reidar Kaabbel"},{"label":"Arbeiderpartiet","value":"44","color":"#ff3300","tooltext":"Kai Guttulsr\u00f8d"},{"label":"SV - Sosialistisk Venstreparti","value":"39","color":"#ff4d4d","tooltext":"Tore Andersen"},{"label":"R\u00f8dt","value":"37","color":"#cc0000","tooltext":"Martin Werner Olsen"}] 

但在我的 iFrame 中显示的是:

SELECT * FROM valg19_kommune WHERE kommunenr = AND kandidatnr = 1 ORDER BY kommunenr, sortering, kandidatnr LIMIT 500[] 

我提交号码时 iframe 内容未更新。

如何确保图表是根据用户输入的数字制作的?

  1. 在我在表单字段中输入数字之前
  2. 输入号码后
  3. 如果我将变量设置为此 $kommunenr = '3001';并删除查询的回声。

【问题讨论】:

    标签: php jquery ajax mysqli fusioncharts


    【解决方案1】:

    现在我觉得我真的很愚蠢!我应该使用会话和全局变量!

    使用 session_start() 开始每个页面;并先设置然后使用全局变量:

    $_SESSION["kommunenr"] = $kommunenr;
    
    $kommunenr = $_SESSION["kommunenr"];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多