Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript和JSON中使用数据库中的数据_Javascript_Php_Json - Fatal编程技术网

在Javascript和JSON中使用数据库中的数据

在Javascript和JSON中使用数据库中的数据,javascript,php,json,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(); $stat

我想用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();

我的脚本可以正常工作。

尽管我也认为您应该采用AJAX方式(或者使用php进行任何尝试并输出最终html而不是使用js),但您可以通过以下方式解决当前的问题:

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

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

请注意,您可能需要使用JSON polyfill,以便在旧ie版本中使用它。您可能还需要在json_encode返回的字符串中转义引号。

您可以像这样从php到javascript获取json数据/对象

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

echo尝试在单独的脚本中测试javascript,并使用ajax调用获取json。请提供比“它不会工作”更好的问题描述。给我们一些有用的信息。
json_encode
确实返回一个sting,但它直接注入到JS源代码中,因此它将被解释为JS数组或对象文本。不需要
JSON.parse
.true。有一段时间,我想我可能会导致键中有空格的问题,但事实并非如此。
var jsArray = JSON.parse("<? echo json_encode($arrayDatabase); ?>");
$arr = json_encode($arrayDatabase);
echo <<<END
  <script type="text/javascript">
    var jsArray = $arr;
  </script>
END;