最初に、私は答えのためにスタックオーバーフローを検索しましたが、動作する解決策が見つかりませんでした。json_encodeは改行をエスケープしません
MVCフレームワーク(yii)を使用していくつかのビューを生成し、配列にスローします。各ビューはカードであり、私はカードの配列($デッキ)と配列の配列($ hands、各プレイヤーの手のリスト)を持っています。私はPHPで作成された手を保存するためにフロントエンドでjavascript変数を設定しようとしています。私の見解は、複数の行に注目する価値があります。実際には、私の現在のテストビューのみで構成されています
test
test
私はそのためjson_encodeを使用しますが、私は$ .parseJSON()を使用する場合、それは私に次のエラーを与えている:
Uncaught SyntaxError: Unexpected token t
私は他の場所で読んでいます何らかの理由でjson_encodeを2回使用する必要があります。私はこれを試しましたが、それは助けになりません。単一json_encodeで
、$hands
をエコーの出力は(出口に続いて)かなり健康になります。
[["test\ntest","test\ntest","test\ntest","test\ntest", etc...
しかし、私は終了していないとき、私は構文エラーを毎回取得します。
編集:ここに私のコードのサンプルがあります。 $ cardsは通常はHTMLの配列ですが、私の単純化されたケースではまだエラーがありますが、上記の2行の 'test'しか含まれていません。 JavaScriptで
$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;
、私は次のことをやっている:
var hands = $.parseJSON('<?php echo json_encode($hands); ?>');
ページロードでそれがエラー。
助けていただけたら幸いです! '
文字がエンコードされた文字列である場合、それはJavascriptの構文を破るよ
var hands = $.parseJSON('{"foobar":"baz'"}');
:
おかげで、
ParagonRG
json_encodeを2回使用することはほとんど意味がありません。 – Pointy
それでは、退出はどうしたらいいですか? JSON配列の括弧の前に余分なクォートがあるのはなぜですか? – mario
'json_encode'を使用する部分を含め、実際のコードの一部を表示してください – nnnnnn