我在解码JSON字符串时遇到错误。
ERROR:
Uncaught SyntaxError: Unexpected token {
我的PHP代码:
<?php
$socket = $_GET["socket"];
$bd = new PDO("mysql:host=localhost;dbname=gestao_utilizadores" , "root" , "");
$getComponentes = $bd->prepare("SELECT * FROM componentes WHERE ( Socket=:socket )");
$getComponentes->bindValue(':socket' , $socket);
$getComponentes->execute();
$resultado = $getComponentes->fetchAll();
For ($i = 0; $i < $getComponentes->rowCount() ; $i++) {
$componentes = json_encode(array('tipo' => $resultado[$i]["Tipo"] , 'nome' => $resultado[$i]["Nome"] , 'socket' => $resultado[$i]["Socket"]));
echo $componentes;
}
?>
我的Javascript代码:
$.ajax({
url: 'compatibilidades.php',
data: {
socket: $("#board option:selected").attr('value')
},
success: function(dadosRecebidos) {
teste = JSON.parse(dadosRecebidos);
alert(teste);
}
});
错误是在javascript还是PHP上?
答案 0 :(得分:0)
<?php
$socket = $_GET["socket"];
$bd = new PDO("mysql:host=localhost;dbname=gestao_utilizadores" , "root" , "");
$getComponentes = $bd->prepare("SELECT * FROM componentes WHERE ( Socket=:socket )");
$getComponentes->bindValue(':socket' , $socket);
$getComponentes->execute();
$resultado = $getComponentes->fetchAll();
$arr = array();
for ($i = 0; $i < $getComponentes->rowCount() ; $i++) {
$componentes = array('tipo' => $resultado[$i]["Tipo"] , 'nome' => $resultado[$i]["Nome"] , 'socket' => $resultado[$i]["Socket"]);
array_push($arr, $componentes);
}
echo json_encode($arr);
?>
只输出一次JSON,否则你最终得到几个JSON字符串的输出,比如
{"key1": "value1", "key2": "value2"}{"key3": "value3"}
这是无效的JSON