简单的Javascript错误

时间:2012-07-05 05:14:35

标签: php javascript

我在以下代码中遇到语法错误。一旦我拿出第一行代码,警报就会弹出。我的大脑几乎死了,我找不到原因。请帮忙。非常感谢。

JS

var rss = <?php echo json_encode($test); ?>;

alert("Hello World");

更新

HTML

  <?php 

    $test=get_array(); 

   //the $test is a multi-dimention array.

  ?>


<script type="text/javascript" src="js/slideshow.js"></script>

4 个答案:

答案 0 :(得分:5)

json_encode将在失败时返回FALSE,因此如果失败,echo false将不会输出任何内容。

所以你的代码变得低于,这会给你一个语法错误。

var rss = ;

alert("Hello World");

修改 的 从您更新的编辑,原因是: 你不能在js文件中编写php代码。

如果您需要js文件中的该变量,请先将其分配给全局变量。

<script type="text/javascript">
  var rss = <?php echo json_encode($test); ?>;
</script>
<script type="text/javascript" src="js/slideshow.js"></script>

答案 1 :(得分:2)

为避免错误,您的代码应为:

var rss = <?php echo json_encode($test) ? json_encode($test) : "''"; ?>;
alert("Hello World");

即使json_encode返回false,您的代码也会是:

var rss = '';
alert("Hello World");

答案 2 :(得分:1)

这是因为JavaScript会抛出致命错误并因以下原因而停止当前脚本执行:

var rss = <?php echo json_encode($test); ?>; 

问题是这可能会返回非有效的JSON字符串,并引发新的异常,

你能做什么:

首先,您应该确定从PHP获得的字符串是否实际有效。 由于JSON方法通常会抛出错误,因此您只需将此var放入try/catch

即可
try {

  var rss = <?php echo json_encode($your_array); ?>;

} catch(e){

  alert('Invalid JSON string');
}

在PHP中,还请检查它是否有效以防止将无效的JSON字符串发送回javaScipt

答案 3 :(得分:1)

在.js文件中,PHP不起作用。它仅适用于扩展名为.php的文件。 将您的JS代码放在PHP页面中;那就行了。