我想用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"));
我的脚本有效。
答案 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;