我想通过jQuery使用ajax将数据库中的数据导入到我的javascript代码中,但是我得到了一个json解析错误,我真的不知道它的来源是什么。你可以帮帮我吗 ?
目标是在地图上构建建筑物,然后从数据库中获取几何元素,如坐标和形状参数。
在JS文件中输入:PHP文件中的$.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 ); } } });
});
:
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); ?>
答案 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?;