当编码为javascript时,我的php字符串会变得很奇怪
我在自己制作的主题中使用wordpress。我链接的代码位于我定制的页面模板中 这很容易。我正在尝试将php数组转换为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
$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>