我怎么得到"LSZ09“。
var el1=data[0];
alert(el1);这给了我"a“从数组,正如位置1给我r,2r,3a,4y,。
该数组通过“echo json_encode($punten)”接收;
也是当我尝试
var jsonDataArray = JSON.parse(data);我得到一个语法错误:
SyntaxError: JSON.parse: unexpected character代码:
$.ajax({ url: 'getPunten.php',
data: {statnam: jSelectedStation[0]},
type: 'get',
success: function(data) {从php脚本接收,最后一行是: echo json_encode($punten);
[{"STATDEV":"LSZ09 ","0":"LSZ09 ","DEVPKT":"1","1":"1","PKTTYP":"S","2":"S","KARTNR":"0","3":"0","BITNRK":"1","4":"1","BITSTATUS":"0","5":"0","TYPE":"I ","6":"I "},{"STATDEV":"LSZ10 ","0":"LSZ10 ","DEVPKT":"1","1":"1","PKTTYP":"S","2":"S","KARTNR":"0","3":"0","BITNRK":"2","4":"2","BITSTATUS":"0","5":"0","TYPE":"I ","6":"I "}php:
$db = new PDO ("xxxx");
$qry="SELECT r.refnam, r.zustnr FROM refdev r INNER JOIN (SELECT refnam, COUNT(*) cnt FROM refdev rc GROUP BY refnam) rc ON rc.refnam = r.refnam LEFT OUTER JOIN texte t ON r.sigtnr = t.textnr WHERE rc.cnt = $aantal AND t.tstring LIKE '%$tekst%' ORDER BY r.refnam, r.zustnr";
$filterQry = $db->query($qry);
$filtered = $filterQry->fetchAll();
echo json_encode($filtered);发布于 2013-10-29 12:30:11
如果您所显示的php是您正在使用的php,则不,它将无法工作。
您可以看到,传递给javascript的文本包括var_dump和echo的结果。
请考虑以下php代码:
<?php
$filtered = array(1,2,3);
var_dump($filtered);
echo json_encode($filtered);
?>你认为这样做的结果是什么?提示:这不是你一直期望的那样。你似乎期待着
[1,2,3]是的,至少部分是这样的。这是最后一行的输出。但是我们还没有考虑中间行var_dump($filtered); --它将输出类似于您用Received from php script, with last line being: echo json_encode($punten);标记的代码的代码
我的代码片段的输出实际上是:
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) } [1,2,3]
这就是为什么你得到的前5个元素包含'a‘'r’a‘y'!这也是对JSON.parse(data);的调用失败的原因-- "arrray(3)"不是有效的json。
提示:当您使用浏览器导航到php脚本时,您看到的是通过ajax调用获取的内容。
https://stackoverflow.com/questions/19657664
复制相似问题