gpt4 book ai didi

javascript - PHP数组传递给js时出错

转载 作者:行者123 更新时间:2023-11-28 18:55:58 24 4
gpt4 key购买 nike

我在 PHP 中有这个数组 ($test)

array (size=4)
1 => string 'test1@mail.example' (length=17)
2 => string 'test2@mail.example' (length=17)
3 => string 'test3@mail.example' (length=17)
4 => string 'test4@mail.example' (length=17)

并想将其传递给 JavaScript。我的目标是在 AJAX 查询中使用它。

所以我做了以下事情

var test = "<?php echo json_encode($test); ?>";
$.post("../path/to/file.php",
{
test: test,
},
function(data,status)
{
...
});

但是每次都会触发以下内容

SyntaxError: missing ; before statement
var test = "{"1":"test1@mail.example","2":"test1@mail.

最佳答案

不要将 json 输出括在引号中。这是不必要的:

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

json_encode() 已经添加了任何必要的 " 字符,而额外的 " 会破坏语法,例如

php:

$foo = 'ab"c';

json_encode($foo) -> "ab\"c";

js:

var test1 =  <?php echo json_encode($foo); ?>;
var test2 = "<?php echo json_encode($foo); ?>";

结果为:

var test1 = "ab\"c";      // this line is ok
var test2 = ""ab\"c""; // this line is fubar
^--start string
^--end string
^^---undeclared/undefined variable

关于javascript - PHP数组传递给js时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33633388/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com