[WordPress] ワードプレスのために JSON.parse の構文エラー

スポンサーリンク

Question

DB で、’imgs_urls’ フィールド:

["http://localhost/wordpress-gallery/wp-content/uploads/2015/01/120.jpg","http://localhost/wordpress-gallery/wp-content/uploads/2015/01/222.jpg"]

php:

$images_urls = get_post_meta($user_post, 'imgs_urls', false); //return array
$a = json_encode($images_urls);


今大きながらくた出力ページを読み込むときと:

明らかに後で私の js エラーがある、ときを行うにしようとしてイム:

var images = $.parseJSON($("#"+imgId+"urls").val());

編集

今場合は、ページが読み込まれるときに実行される関数の js を始めます:

var vv = [];
vv.push('http://localhost/wordpress-gallery/wp-content/uploads/2015/01/118.jpg');   
vv.push('http://localhost/wordpress-gallery/wp-content/uploads/2015/01/118.jpg');
$("#" + imgId + "urls").val(JSON.stringify(vv));

DB に記事を保存した後:

["http://localhost/wordpress-gallery/wp-content/uploads/2015/01/118.jpg","http://localhost/wordpress-gallery/wp-content/uploads/2015/01/118.jpg"]

まったく同じ DB 形式、この時間は、エラー メッセージと:

var images = $.parseJSON($("#"+imgId+"urls").val());

…、同じ php の json_encode 関数を使用している奇妙な、任意のアイデアですか?

答え

問題は引用符。行うことができます 1 つの事は、JSON の HTML バージョンを取る:

$a = htmlspecialchars(json_encode($images_urls));

//JavaScript:
var images = $.parseJSON($("
").html($("#"+imgId+"urls").val()).text());

説明:

$("
").html($("#"+imgId+"urls").val()).text()

これは HTML エンティティを取り除くが取得する (すなわち

$lt

)

$("#"+imgId+"urls").val()

htmlspecialchars

からです。JSON を解析するときそれを解析するだけ

http://stackoverflow.com/questions/27790438/wordpress-json-parse-syntax-error

スポンサーリンク

Leave a Reply