Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当编码为javascript时,我的php字符串会变得很奇怪_Javascript_Php_Jquery_Json - Fatal编程技术网

当编码为javascript时,我的php字符串会变得很奇怪

当编码为javascript时,我的php字符串会变得很奇怪,javascript,php,jquery,json,Javascript,Php,Jquery,Json,我在自己制作的主题中使用wordpress。我链接的代码位于我定制的页面模板中 这很容易。我正在尝试将php数组转换为javascript数组。我有一个php脚本: $userArray = array('John Doe', 'john@example.com'); 这个javascript: var users = '<?php echo json_encode($userArray); ?>'; jQuery(this).val(users[0]); // this d

我在自己制作的主题中使用wordpress。我链接的代码位于我定制的页面模板中

这很容易。我正在尝试将php数组转换为javascript数组。我有一个php脚本:

$userArray = array('John Doe', 'john@example.com');
这个javascript:

 var users = '<?php echo json_encode($userArray); ?>';
 jQuery(this).val(users[0]);
 // this displays my value inside a textfield.
所以我把它拼成[“约翰·多伊”]。 用户[0]应该是“john doe”

有人知道为什么会这样吗?
提前感谢您的帮助和提示

您必须先解析字符串。变量
users
是一个字符串,需要转换为数组或对象

var users = '<?php echo json_encode($userArray); ?>';
users = JSON.parse(users); /* Parse the string to array or object */
jQuery(this).val(users[0]);
var用户=”;
users=JSON.parse(用户);/*将字符串解析为数组或对象*/
jQuery(this.val)(用户[0]);
或者,您可以通过以下方式缩短代码:

var users = JSON.parse('<?php echo json_encode($userArray); ?>');
jQuery(this).val(users[0]);
var users=JSON.parse(“”);
jQuery(this.val)(用户[0]);

users变量包含一个字符串,如果您尝试在Javascript中以数组的形式访问字符串,您将在
索引
位置获得字符,这就是您获得该结果的原因(请参阅“字符访问”)

除了
JSON.parse
ing它之外,您可以省略引号,它将被解释为JSON:

<?php
    $userArray = array('John Doe', 'john@example.com');
?>
<script>
    var users = <?php echo json_encode($userArray); ?>;
    console.log(users[0]); // John Doe
</script>

var用户=;
console.log(用户[0]);//无名氏
<?php
    $userArray = array('John Doe', 'john@example.com');
?>
<script>
    var users = <?php echo json_encode($userArray); ?>;
    console.log(users[0]); // John Doe
</script>