PHP:得到了一个json解析错误

时间:2013-07-30 14:17:52

标签: php jquery ajax json parsing

我想通过jQuery使用ajax将数据库中的数据导入到我的javascript代码中,但是我得到了一个json解析错误,我真的不知道它的来源是什么。你可以帮帮我吗 ?

目标是在地图上构建建筑物,然后从数据库中获取几何元素,如坐标和形状参数。

在JS文件中输入:

 $.ajax({ 

  type: "GET",
  url: "ajax_processor.php",
  dataType : "html",

  error:function(msg, string){ 
     alert( "Error !: " + string );
  }

  success:function(returnData){ 

     var data = $.parseJSON(returnData); 

     for(var ID_geometryElement  in data) {
          addComp($data[bldg], 
                  $data[iZ], // zone where is the building
                  $data[iType], //type of the geometric element
                  $data[x0],
                  $data[y0],//coordinates top-left
                  $data[p], // geometric parameters
                  );
     }
   }
 });
     

});

PHP文件中的

  

try {
   $bdd = new PDO('mysql:host=localhost;dbname=building_geometry','admin','password');
}

 $reponse = $bdd->query('SELECT * FROM ID_GEOMETRYELEMENT');
 $donnees = $reponse->fetch(); 

  header('Content-Type: application/json'); 
  echo json_encode($response); 

  ?>  

3 个答案:

答案 0 :(得分:2)

您正在尝试json_encode数据库语句处理您的查询返回。这不是你可以编码的东西。代码应该是

echo json_encode($donnees);
                 ^^^^^^^^--- the actual data

如果您完成了最基本的调试,例如:在JS中console.log(returnData),您已经看到您没有从脚本中获得任何有效的内容。

答案 1 :(得分:0)

dataType : "html",

必须是

dataType : "json",

如果您希望在回复中使用JSON

编辑:请参阅http://api.jquery.com/jQuery.post/

  

的dataType

     

类型:字符串

     

服务器所需的数据类型。默认值:智能猜测(xml,json,脚本,文本,html)。

答案 2 :(得分:0)

$ response只是一个游标,你需要返回获取的数据。

try {
   $bdd = new PDO('mysql:host=localhost;dbname=building_geometry','admin','password');
}

$reponse = $bdd->query('SELECT * FROM ID_GEOMETRYELEMENT');
$donnees = $reponse->fetch(); 

header('Content-Type: application/json'); 
echo json_encode($donnees); 

&GT?;