2017-01-13 8 views
0

配列をjsonに変換してデータを使用しました。配列内にブレークラインがあるとエラーが出ます。ここでjavascript配列に新しい行がある場合のエラー

は私のコードです:

<script> 
     function showKnowledgeItem(id) { 

      var title = []; 
      var text = []; 

    <?php 
    $query = (new \yii\db\Query()) 
      ->select('') 
      ->from('fc_knowledge') 
      ->all(); 

    $arr = array(); 
    $arr = json_encode($query, true); 
    $json_output = json_decode($arr); 

    foreach ($json_output as $title) { 
     ?> 
       title [<?= $title->id ?>] = ["<?= $title->title ?>"]; 
     <?php 
    } 
    foreach ($json_output as $content) { 
     ?> 
       text [<?= $content->id ?>] = ["<?= $content->content ?>"]; 
     <?php 
    } 
    ?> 
     } 
    </script> 

このコードはうまく動作します。しかし、配列内に改行またはブレークラインがある場合、それは動作しません。この絵で明らか

エラー: enter image description here

は、誰もが、私はこの問題を解決するために持っているものを知ってい。あまりにもあなたにタンクします。

+0

新ラインで新しい行を削除します。新しい行を保持したい場合は、それらをエスケープする必要があります。 [documentation](http://www.yiiframework.com/doc-2.0/yii-helpers-basejson.html#encode()-detail)を参照してください。 –

+0

PHP 5.0.2以降を使用している場合は、 '$ str = str_replace(PHP_EOL、 ''、$ str); ' –

答えて

2

有効なJSONではありません。このような$title->title

trim(preg_replace('/\s\s+/', '<br/>', $title->title)); 
+0

Malyaitaしかし、私は新しい行が必要です。 –

+0

テキスト内のすべての区切りを削除しますか? –

+0

はい、新しい行を
に置き換える必要があります。コードを変更しました –

関連する問題