将PHP字符串传递给JavaScript:未终止的字符串文字

时间:2012-10-16 10:01:24

标签: php javascript ajax

我将PHP var分配给我的javascript var并通过发送到PHP文件 ajax-jQuery,但是我的php变量包含换行符 我已替换为<br>

e.g.            $values1 = 'abc<br>pqr<br>xyz';  $values2 = 'xyz<br>lmn';
javascript -    var data = 'val1=<?php echo $values; ?>&val2=<?php echo $values2; ?>';

然后使用ajax脚本将数据发布到PHP文件

但是当我在控制台上打印这些数据时,它给了我错误 - SyntaxError:unterminated string literal。

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:2)

您的JS代码:

var data = 'val1=<?php echo $values1; ?>&val2=<?php echo $values2; ?>';

如果您的一个或多个PHP变量$values1$values2中包含单引号',则会出现Javascript语法错误。

通过将所有单引号替换为其他内容,确保您的PHP变量中不包含单引号,否则使用双引号"来创建JS var,如下所示:

var data = "val1=<?php echo $values1; ?>&val2=<?php echo $values2; ?>";

提供的PHP变量不包含双引号。

答案 1 :(得分:0)

首先,你有一个错字,可能会导致错误:

// --------------------------------v
var data = 'val1=<?php echo $values1; ?>&val2=<?php echo $values2; ?>';

然后,我建议您将对象用作Ajax请求的data参数:

var data = {
    val1: '<?php echo $values1; ?>',
    val2: '<?php echo $values2; ?>'
};

最好在'$values1变量中转义单引号$values2

答案 2 :(得分:-1)

尝试使用<br />代替<br>。只是在这里猜测,没有测试。