我有一个php脚本,用于在ajax调用之后从MysQL数据库中检索数据。需要将数据作为字符串返回到调用网页,该字符串表示要在散点图上显示的一系列x,y值。
php脚本需要输出到调用页面的所需格式(将从xmlhttp.responseText中选取)如下:
[[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7]
我得到的是:
[[0, “69.08”],[1, “53.53”],[2, “61.61”],[3, “72.04”],[4, “82.72”],[5, “103.76” ]
我用来构建返回字符串的PHP代码是:
while ($row=mysql_fetch_array($res_Data,MYSQL_NUM)) {
$index[$i] = $i;
$PointArray[0] = $i;
$PointArray[1] = $row[1];
$ReturnData[$i] = $PointArray;
$i = $i + 1;
}
echo json_encode($ReturnData);
有趣的是,当我将数据回显到调用页面上显示的html表而不是将其设置为php数组时,不会出现双引号。
我的问题有两个:
(1)有没有比我提出的更优雅的数据串建立方式,看起来有点笨拙?
(2)删除双引号的最佳方法是什么?这应该是服务器端还是在启动呼叫的网页上的javascript函数中完成的?
非常感谢
答案 0 :(得分:1)
如果你不想出现引号 - 只是不要在数组中放一个字符串; - )
将代码替换为类似的内容(我在(float)
之前添加了$row[1]
修饰符):
while ($row=mysql_fetch_array($res_Data,MYSQL_NUM)) {
$index[$i] = $i;
$PointArray[0] = $i;
$PointArray[1] = (float)$row[1];
$ReturnData[$i] = $PointArray;
$i = $i + 1;
}
或者更紧凑:
while ($row=mysql_fetch_array($res_Data,MYSQL_NUM)) {
$index[$i] = $i; // what is it used for?
$ReturnData[$i] = array($i, (float)$row[1]);
$i++;
}