2017-08-31 79 views
-3

我的问题听起来很简单和原始,但我对Javascript完全陌生,我试图找到解决方案两天,但我没有找到任何东西。将数据从数据库加载到javascript对象

我正在建立一个网站,在页脚的地图。这与谷歌地图非常相似。我需要在那里添加一些标记,并且我想要自动完成 - 使用CMS。 我的CMS很简单。只需将表单的“标题”和“协调”插入到数据库表中。 该地图是用JavaScript代码编写的,有一个名为data的对象。它包含每个标记的titlecoordinations

我的问题:我无法从我的数据库表中取数据并将它们插入javascript对象data = {}

这是应该看起来像。

var data = { 
    "title1": "coordinates1", 
    "title2": "coordinates2", 
}; 

这是我如何从数据库中获取数据:

<?php 
$sql="SELECT label,coordinates FROM map ORDER BY id"; 
if ($result=mysqli_query($conn,$sql)) 
{ 
while ($obj=mysqli_fetch_object($result)) 
{ 
    printf("%s %s<br>\n",$obj->label,$obj->coordinates); 
} 
mysqli_free_result($result); 
} 
mysqli_close($conn); 
?> 

我会如此感激,如果你能帮助我!我通过寻找解决方案花了几十个小时。我厌倦了这一点。

+1

你的后端代码从数据库中获取数据在哪里?你已经标记了PHP,所以我假设你有一些PHP。 –

+2

查看PHP手册中的'json_encode()'和'json_decode()' – RiggsFolly

+1

而http://www.json.org/如果JSON对你来说是新的 – RiggsFolly

回答

0

假设您已经对您的PHP代码进行ajax调用,并且您只需要PHP帮助(您没有显示或询问Javascript,所以我没有解决这个问题)。而不是将结果显示为“纯文本”,而是使用JSON响应。 PHP有一个内置函数(json_encode()),它将数组转换为JSON编码的字符串。

<?php 

$sql="SELECT label,coordinates FROM map ORDER BY id"; 

$resultArray = array(); 

if ($result=mysqli_query($conn,$sql)) 
{ 
    while ($obj=mysqli_fetch_object($result)) 
    { 
     $resultArray[$obj->label] = $obj->coordinates; 
    } 

    mysqli_free_result($result); 
} 

mysqli_close($conn); 

echo json_encode($resultArray); 
?> 
+0

是啊!它终于有效。你让我今天一整天都感觉很好!经过几次尝试,我意识到我需要的只是 - '$ resultArray [$ obj-> label] = $ obj->坐标;' –