使用Javascript中的Javascript数据库中的数据

时间:2014-02-12 17:47:29

标签: javascript php json

我想用Javascript显示我的数据库的一些数据。 这是我的PHP脚本:

$arrayDatabase =  array();
$statement = $link->prepare("SELECT project.ID, project.titel, project.subtitel, project.plaatje, project.beschrijving, project.link FROM project" );
$statement->execute();
$statement->bind_result($ID, $titel, $subtitel, $plaatje, $beschrijving, $site);
while($statement->fetch()){
    echo '
        <div class="singleProject" id="'.$ID.'">
            <img src="'.$plaatje.'" alt="'.$titel.'" />
            <div>
                <h2>'.$titel.'</h2>
                <div><p>'.$subtitel.'</p></div>
             </div>
        </div>
    ';
    $arrayRij= array($ID, $beschrijving, $site);
    array_push($arrayDatabase, $arrayRij);
}
$statement->close();

但是如果我使用json_encode将数组转换为Javascript,它将无法工作。

var jsArray = <? echo json_encode($arrayDatabase); ?>;
编辑:在我的浏览器中只有一个';'在var jsArray =

之后

奇怪的是。如果我自己使用多维数组,如:

$phpArray = array(array("foo", "bar"), array("foo", "bar"));

我的脚本有效。

2 个答案:

答案 0 :(得分:1)

虽然我也认为你应该采用AJAX方式(或者做你想在php中做的任何事情并输出最终的html而不是在js中做东西),你可以用这种方式修复你当前的问题:

json_encode返回一个字符串而不是javascript对象,所以你需要在js中解析它以获得真实对象:

var jsArray = JSON.parse("<? echo json_encode($arrayDatabase); ?>");

请注意,您可能需要使用JSON polyfill才能在旧版本中使用。此外,您可能需要转义从json_encode返回的字符串中的引号。

答案 1 :(得分:0)

您可以将JSON数据/对象从php获取到这样的javascript。

$arr = json_encode($arrayDatabase);
echo <<<END
  <script type="text/javascript">
    var jsArray = $arr;
  </script>
END;