2012-03-01 10 views
0

私はJavaScriptの配列の中に入れたい一連のデータを持っています。私は、CMSとしてのWordpressを使用して、私のデータは、この(投稿の内容)のようになります。私はのは、3件の投稿を言わせためにJavaScriptでこのコードを参照してくださいポストからデータを模索しようとすると、しかし新しい行をJavascript値を修正するように変換する

line1 
line2 
line3 

var locations=['line1 
line2 
line3','line1 
line2 
line3','line1 
line2 
line3']; 

私はコンソールで見たとき、私は、このエラーが表示されます。キャッチされないでSyntaxError:予期しないトークンILLEGAL。私はここで多くの答えを探しましたが、私はそれで足を壊すことに成功しませんでした。しかし、コンテンツのHTMLタブには<br/>がありませんので、新しい行はhtmlコードではありません。

私もこのようなPHPでの特殊文字をエスケープしようとしたが、それは同じエラー飛び出し:「いくつかのテキストは、」実行に見えるようにコンテンツは、1行にある場合、しかし、

echo '\''.htmlspecialchars (get_the_content()).'\','; 

をOK。

アイデア?

ありがとうございました!

+0

データをフォーマットして、特殊文字を除去してからPHPスクリプトを実行できますか? – approxiblue

+0

私はそう思います...どうすればいいですか?非常に基本的な方法で 'get_posts($ args)'を実行しているので、複雑なものはありません。 – Mike

+0

これは、サーバーに送信する前に入力について何もできないことを意味します。あなたはPHPだけで作業しています。あなたにはすでに答えがあります。 – approxiblue

答えて

2

json_encode()を使用してJavaScriptリテラルに変換してから出力します。

+0

良いものの、コンテンツは1行に表示されていました。私はついにこの 'array_push($ locations、nl2br(get_the_content()))'と 'echo 'var locations ='を作成しました。 json_encode($ locations)。 ';' 'これは非常にうまくいっています。 – Mike

1

これは実際にはPHPの質問です。 Javascriptは、そのような構文エラーから "回復"する方法はありません。

echo "'".str_replace(
    array("'", "\n", "\r"), 
    array("\\'", "\\n", "\\r"), 
    get_the_content() 
)."'"; 
+0

これは実際には 'nl2br'がうまくいくと思っていますが、出発点に感謝します! – Mike

+1

はい、htmlに出力したい場合。結局のところ、 'json_encode'を使った方が良いでしょう。 – kirilloid

関連する問題