我正在开发一个PHP Web应用程序,它从MYSQL数据库中检索大量数据,然后使用PHP json_encode将关联数组转换为JSON。
<script type="text/javascript">
var json = <?php
// get loads of data from MYSQL database, store in $array
echo(json_encode($array));
?>;
</script>
之前看起来工作得很好,但现在当在Chrome中按F12并检查控制台时,JavaScript会抛出一个错误,因为它没有识别开头&lt;在<?php
。
我发现如果我删除了类型=&#34; text / javascript&#34;从脚本标签,它读得很好。
编辑:
如果我使用以下内容,则可以:
<script>
var json = <?php
// get loads of data from MYSQL database, store in $array
echo(json_encode($array));
?>;
</script>
似乎在脚本标记中添加一个类型会阻止PHP在发送到客户端设备之前执行。
为什么会这样?
答案 0 :(得分:0)
如果使用:
,似乎标签实际上可用于运行PHP代码 <script language="php"> echo("hello"); </script>
我假设在脚本标记中设置类型使得它只评估标记中的单一语言 - 如果没有类型,则保留它不会保留多语言脚本标记。
来源:http://php.about.com/od/advancedphp/qt/mixed_scripting.htm
因此,使用
之类的东西<script>
var json = <?php
echo($var);
?>;
</script>
将评估两种语言(显然是PHP服务器端),但在脚本标记中设置类型或语言将阻止评估标记中的其他语言/类型。