我正在使用数据库中的数据创建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内容不会更新。
如何确定图表是根据用户输入的号码制作的?
答案 0 :(得分:0)
现在我真的很傻!我应该使用会话和全局变量!
使用session_start()开始每个页面;首先设置,然后使用全局变量:
$_SESSION["kommunenr"] = $kommunenr;
$kommunenr = $_SESSION["kommunenr"];