使用变量where-condition

时间:2019-06-22 08:40:51

标签: php jquery ajax mysqli fusioncharts

我正在使用数据库中的数据创建FusionCharts。如果我在代码中设置了变量($ kommunenr ='3001';),则设置了静态where条件,则此方法有效。但是我希望网站的用户通过在表格字段中插入数字(即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内容不会更新。

如何确定图表是根据用户输入的号码制作的?

Before I enter a number in the form field

After I entered the number

If I set the variable as this $kommunenr = '3001'; and remove the echo og the query.

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

1 个答案:

答案 0 :(得分:0)

现在我真的很傻!我应该使用会话和全局变量!

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

$_SESSION["kommunenr"] = $kommunenr;

$kommunenr = $_SESSION["kommunenr"];