将 PHP 数组回显到 Javascript
Echo PHP array to Javascript
我目前正在做一个项目,我需要从数据库中获取数据并将其生成为Javascript数组。它动态更改图形。
我有以下PHP代码来获取数组。
<?php
ini_set('memory_limit', '1024M');
$dbconn = pg_connect(**My connection details**)
or die('Could not connect: ' . pg_last_error());
$county1 = $_GET['c1'];
$county2 = $_GET['c2'];
$county3 = "National";
$counties = 'SELECT * FROM house_price_data_db.county_median_months where county=$1 or county=$2 or county=$3 order by county';
$result_counties = pg_query_params($dbconn,$counties,array($county1,$county2,$county3)) or die('Query failed: ' . pg_last_error());
$county_meds = array();
while($r = pg_fetch_assoc($result_counties)) {
$county_meds[] = $r;
}
echo("var county_med_month=".json_encode(array_values($county_meds), JSON_NUMERIC_CHECK).";");
pg_free_result($result_counties);
pg_close($dbconn);
?>
运行时确实会返回数组。
E.g
var county_med_month=[
{"county":"Carlow","med_jan_10":165000,"med_feb_10":170000,...,"med_dec_14":null}
{"county":"Dublin","med_jan_10":285000,"med_feb_10":280000,...,"med_dec_14":null},
{"county":"National","med_jan_10":220264.31,"med_feb_10":216500,...,"med_dec_14":null}];
但是由于某些原因,当我尝试在 Javascript 代码中使用数组时,它似乎不起作用?
function county_med_chart(){
county_1=document.getElementById("dd1_c").value;
county_2=document.getElementById("dd2_c").value;
var c;
county_meds(county_1,county_2);
for(c=0;c<county_med_month.length;c+=1){
var a=county_med_month.c;
if(a.county==county_1){
med_jan_10_1=parseFloat(a.med_jan_10);
:
med_sep_14_1=parseFloat(a.med_sep_14);
}
else if(a.county==county_2){
med_jan_10_2=parseFloat(a.med_jan_10);
:
med_sep_14_2=parseFloat(a.med_sep_14);
}
else if(a.county=="National"){
med_jan_10_3=parseFloat(a.med_jan_10);
:
med_sep_14_3=parseFloat(a.med_sep_14);
}
}
var e=new google.visualization.arrayToDataTable([
["Year",county_1,county_2,"National"],
["Jan-10",med_jan_10_1,med_jan_10_2,med_jan_10_3],
["Feb-10",med_feb_10_1,med_feb_10_2,med_feb_10_3],
:
["Aug-14",med_aug_14_1,med_aug_14_2,med_aug_14_3],
["Sept-14",med_sep_14_1,med_sep_14_2,med_sep_14_3],
]);
var b={
title:"House Price Index by County:",
curveType:"function",
is3D:true,
legend:"top",
width:650,
height:280,
hAxis: { textPosition: 'none' }};
var d=new google.visualization.LineChart(document.getElementById("chart_div"));
d.draw(e,b)
}
有什么建议吗?
为什么不在对代码执行任何复杂逻辑之前尝试调试代码呢?
在回显数组之后,尝试在javascript的顶部执行以下操作:
if(county_med_month.length > 0)
console.log("The array was created!, the problem was with my JavaScript code!");
顺便说一下,您不会使用点表示法访问数组值
var a=county_med_month.c;
应该有红色
var a=county_med_month[c];
尝试以这种方式捕获json
编码数据,
var a=county_med_month[c].county;
有关更多信息,有关 json 数组和对象访问的信息:JSON
相关文章:
- AJAX Post的奇怪Javascript/PHP行为
- 带有输入参数的Javascript/PHP中的XMLHTTPrequests
- 用Javascript/PHP创建字典
- 如何记录用户'使用Javascript/PHP的语音
- fetch data from db using javascript & php
- onClick按钮不工作javascript/php/jquery mobile
- 通过Javascript(PHP循环)添加类
- Javascript php onclick
- Interfacing html, javascript, php and mysql
- Javascript/PHP Validation
- JavaScript/PHP 刷新取代了 HTML 元素类
- Cross-domain javascript <-> php
- 设置计时器并使用javascript/PHP进行检查
- Javascript/Php聊天-输入is'不能在一个文本框中工作
- AJAX (JavaScript / PHP), FormData not sending
- Javascript/PHP中的HTML转义/编码
- 我想在Iframe Javascript PHP的帮助下,将单个ajax上传器脚本转换为多个上传器
- javascript/php中的批量打印
- Javascript/PHP,使用文本文件作为数据库,并将内容组织到阵列表中
- JavaScript/PHP函数不会发布到其他页面