简体   繁体   English

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

[英]passing PHP string to JavaScript: unterminated string literal

i am assigning PHP var to my javascript var and sending to PHP file through ajax-jQuery, but my php variable contains newline chars which i have replaced with <br> 我正在将PHP var分配给我的javascript var并通过ajax-jQuery发送到PHP文件,但我的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; ?>';

and then ajax script to post data to PHP file 然后ajax脚本将数据发布到PHP文件

but when i print this data on console it is giving me error- SyntaxError: unterminated string literal. 但是当我在控制台上打印这个数据时它给了我错误 - SyntaxError:unterminated string literal。

Can anyone help ? 有人可以帮忙吗?

Your JS code: 你的JS代码:

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

Will give Javascript syntax error if one or more of your PHP variables $values1 OR $values2 contain single quote ' in them. 会给JavaScript语法错误,如果一个或多个你的PHP变量$values1$values2包含单引号'在其中。

Make sure your PHP variable don't contain single quotes in them by replacing all single quotes to something else otherwise use double quotes " to create JS var like this: 通过将所有单引号替换为其他内容,确保您的PHP变量中不包含单引号,否则使用双引号"创建JS var,如下所示:

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

Provided PHP variables don't contain double quotes. 提供的PHP变量不包含双引号。

First of all, you have a typo, that might cause an error: 首先,你有一个错字,可能会导致错误:

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

Then, I suggest you to use object as data parameter for Ajax request: 然后,我建议你使用object作为Ajax请求的data参数:

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

Also it is better to escape single quotes ' in both $values1 and $values2 variables. 此外,它是更好地逃避单引号'两个$values1$values2变量。

Try using <br /> instead of <br> . 尝试使用<br />而不是<br> Just guessing here, no testing. 只是在这里猜测,没有测试。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM