当我回显一个变量时,变量包含从数据库中获取的数据。
$query = "Select cal_date, mfg_name, sales_amt, mkt_share
from (---here comes subquery--)
group by TO_DATE(cal_date, 'YYYYMMDD'), mfg_name
order by mfg_name, cal_date
$data = json_encode($results);
echo $data; die();
输出结果如下。
{"8":{
"CAL_DATE":"01-APR-2013",
"MFG_NAME":"AMS",
"SALES_AMT":"1630",
"MKT_SHARE":".01"
},
"9":{
"CAL_DATE":"01-AUG-2012",
"MFG_NAME":"TEVA",
"SALES_AMT_USD":"876",
"MKT_SHARE":".59"
}
}
我不知道为什么我会得到" 8" " 9"在每个元素数据之前。如何在警报中从此获取MFG_NAME。就像我尝试了下面的
var cdata = new Array();
cdata = <?php echo $data; ?>;
var dlen = cdata.length;
var mfg_name = new Array();
for(var i=0 ; i<dlen; i++ )
{
mfg_name[i] = cdata[i].MFG_NAME;
}
alert(mfg_name);
我在警报中得到了空的结果。例如,如何在上面的提醒中获取AMS, TEVA
?我是否必须执行parseJSON或如何获取它?
提前致谢...
答案 0 :(得分:0)
因此,您的PHP正在输出JSON字符串,因为没有内容类型标头集。因此,您需要将其解析为JSON对象,然后循环访问键以访问值,如下所示。
var json = JSON.parse('{"8":{"CAL_DATE":"01-APR-2013","MFG_NAME":"AMS","SALES_AMT":"1630","MKT_SHARE":".01"},"9":{"CAL_DATE":"01-AUG-2012","MFG_NAME":"TEVA","SALES_AMT_USD":"876","MKT_SHARE":".59"}}');
for (var key in json) {
alert (json[key]["MFG_NAME"]);
}
演示@ fiddle
答案 1 :(得分:0)
这对我有用:
cdata = '{"8":{"CAL_DATE":"01-APR-2013","MFG_NAME":"AMS","SALES_AMT":"1630","MKT_SHARE":".01"},"9":{"CAL_DATE":"01-AUG-2012","MFG_NAME":"TEVA","SALES_AMT_USD":"876","MKT_SHARE":".59"}}';
cdata = JSON.parse(cdata);
var mfg_name = new Array();
var i = 0;
for(var key in cdata ){
mfg_name[i] = cdata[key].MFG_NAME;
i++;
}
alert(mfg_name);
提醒AMS,TEVA