繁体   English   中英

JSON从php解码信息

[英]JSON decode info from php

我在解码JSON字符串时遇到错误。

错误:

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上?

<?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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM