【发布时间】:2013-07-30 14:17:51
【问题描述】:
我想通过 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); ?>
【问题讨论】:
-
你从 ajax 中得到了什么?
-
首先你必须在 JS 代码中修复一件事。如果您正在编写
for(var ID_geometryElement in data) {,那么您将在ID_geometryElement变量中获取每个项目,而不是在$data中(以及从哪里获得$ JS var?)。 -
这是什么意思?我希望 ajax 执行函数 addComp() 并用它从数据库中查询的数据填充数据,但我之前在 json 解析中遇到了错误。
-
除了对
json_encode()的单个调用的输出之外,您的 php 程序是否输出其他任何内容?浏览器在 http 响应数据中显示什么?此外,在您的 JS 代码中,您似乎有一个名为data的变量,但看起来您是通过名称$data来引用它。这看起来像一个错误。 -
你试一试没有问题......
标签: php jquery ajax json parsing