0

我目前正在通过 PHP 回显显示 javascript:

        echo 'var currentInvoiceDataJSON = <?php echo json_encode($yearData_Invoices[$currentYear] ); ?>;';

但是我得到一个 Uncaught SyntaxError: Unexpected token < 我推断的错误与第二个有关

我怎样才能解决这个问题,还有其他可能性吗?

一些专家的建议将不胜感激。

4

4 回答 4

5

该代码以无效的 Javascript 代码结尾。

这是发生的事情:

您的服务器回显一个字符串:

echo 'var currentInvoiceDataJSON = <?php echo json_encode($yearData_Invoices[$currentYear] ); ?>;';

您的浏览器现在有:

var currentInvoiceDataJSON = <?php echo json_encode($yearData_Invoices[$currentYear] ); ?>;

一旦您的 PHP 脚本完成运行并回显第一个字符串,PHP 就无法处理内部回显。


我会做什么:

$data = json_encode($yearData_Invoices[$currentYear]);
echo 'var currentInvoiceDataJSON = ' . $data . ';';
于 2013-05-10T03:24:22.520 回答
1

改为这样做:

echo 'var currentInvoiceDataJSON = '.<?php echo json_encode($yearData_Invoices[$currentYear] ); ?>.';';
于 2013-05-10T03:25:22.093 回答
1

我没有对此进行测试,但试一试:

echo "var currentInvoiceDataJSON = '".str_replace("'","\\'",json_encode($yearData_Invoices[$currentYear]))."';";
于 2013-05-10T03:25:22.830 回答
1

只需更改为

echo "var currentInvoiceDataJSON = ".json_encode($yearData_Invoices[$currentYear] ).";";

并且还要注意 php 中的单引号字符串不会插入变量,所以

$a = "Hello World";
echo '$a'; // outputs :  $a
echo "$a"; // outputs :  Hello World

当你在 php 上下文中时

于 2013-05-10T03:34:48.590 回答