0

我想通过 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); 

  ?>  
4

3 回答 3

2

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

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

如果您甚至完成了最基本的调试,例如console.log(returnData)在 JS 中,您会发现您没有从脚本中得到任何有效的返回值。

于 2013-07-30T14:21:50.830 回答
0
dataType : "html",

一定是

dataType : "json",

如果您期望响应中有 JSON

编辑:http://api.jquery.com/jQuery.post/

数据类型

类型:字符串

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

于 2013-07-30T14:20:35.033 回答
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); 

?>

于 2013-07-30T14:24:38.543 回答