Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.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
Php json#u encode赢得';不要逃避新词_Php_Javascript_Yii_Json - Fatal编程技术网

Php json#u encode赢得';不要逃避新词

Php json#u encode赢得';不要逃避新词,php,javascript,yii,json,Php,Javascript,Yii,Json,首先,我有搜索堆栈溢出的答案,但我没有找到一个解决方案,工作 我正在使用MVC框架(yii)生成一些视图并将它们放入数组中。每个视图都是一张牌,我有一组牌($deck)和一组牌($hands,每个玩家的牌列表)。我只是想在前端设置一个javascript变量来存储用PHP创建的手。值得注意的是,我的观点有多行。事实上,我当前的测试视图仅包括: test test 因此,我使用了json_encode,但当我使用$.parseJSON()时,它给了我以下错误: 我在别处读到,无论出于何种原因,都

首先,我有搜索堆栈溢出的答案,但我没有找到一个解决方案,工作

我正在使用MVC框架(yii)生成一些视图并将它们放入数组中。每个视图都是一张牌,我有一组牌($deck)和一组牌($hands,每个玩家的牌列表)。我只是想在前端设置一个javascript变量来存储用PHP创建的手。值得注意的是,我的观点有多行。事实上,我当前的测试视图仅包括:

test
test
因此,我使用了json_encode,但当我使用$.parseJSON()时,它给了我以下错误:

我在别处读到,无论出于何种原因,都需要使用json_编码两次。我试过这个,但没用

通过一个json_编码,回声
$hands
(后跟一个出口)的输出看起来非常健康:

[["test\ntest","test\ntest","test\ntest","test\ntest", etc...
但当我不退出时,每次都会出现语法错误

编辑:这是我的代码示例。请注意,$cards通常是一个HTML数组,但在我的简化示例中,仍然存在错误,只包括上面提到的两行“test”

    $deck = array();
    foreach ($cards as $card) {
        $deck[] = $this->renderPartial('/gamePieces/cardTest', 
                array('card'=>$card), true);
    }
    $hands = Cards::handOutCards($deck, $numCards , $numPlayers);
    $hands = json_encode($hands);

    echo $hands; exit;
使用JavaScript,我将执行以下操作:

var hands = $.parseJSON('<?php echo json_encode($hands); ?>');
var hands=$.parseJSON(“”);
它在页面加载时出错

任何帮助都将不胜感激

谢谢

帕拉贡

var hands = $.parseJSON('<?php echo json_encode($hands); ?>');
如果编码字符串中有
字符,它将破坏Javascript语法。由于您直接将JSON输出到JavaScript中,只需执行以下操作:

var hands = <?php echo json_encode($hands); ?>;
var-hands=;
JSON是语法有效的Javascript。例如,如果通过AJAX将其作为字符串接收,则只需对其进行解析或
eval
。如果您直接生成Javascript源代码,只需直接嵌入它

如果编码字符串中有
字符,它将破坏Javascript语法。由于您直接将JSON输出到JavaScript中,只需执行以下操作:

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

JSON是语法有效的Javascript。例如,如果通过AJAX将其作为字符串接收,则只需对其进行解析或
eval
。如果您直接生成Javascript源代码,只需直接嵌入即可。

使用json_编码两次没有什么意义。那么为什么不保留退出?为什么会有一个无关的
JSON数组括号前的引号?请显示一些实际代码,包括使用
JSON\u encode
的部分。谢谢,我编辑了我的问题以显示更多代码。显然,我不能保持退出,因为我的视图将不会渲染。至于额外的引号,我不知道为什么会有;我回了声,但它不在那里,所以我编辑了我的问题。@Paragon,那个问题是胡说八道;那里的海报很混乱。使用json_编码两次没有什么意义。那你为什么不保留出口呢?为什么会有一个无关的
JSON数组括号前的引号?请显示一些实际代码,包括使用
JSON\u encode
的部分。谢谢,我编辑了我的问题以显示更多代码。显然,我不能保持退出,因为我的视图将不会渲染。至于额外的引号,我不知道为什么会有;我回了声,但它不在那里,所以我编辑了我的问题。@Paragon,那个问题是胡说八道;那里的海报很混乱,谢谢。这是一个根本问题,我没有得到;问题解决了,谢谢。这是一个根本问题,我没有得到;问题解决了。
var hands = <?php echo json_encode($hands); ?>;