【发布时间】:2023-03-19 15:51:01
【问题描述】:
我在将 JSON 编码的 php 数组传递给 Laravel 4 中的 javascript 时遇到了一些问题。我将它从我的控制器发送到我的视图,在 HTML 中填充一个值字段,然后用 JS 提取该值。代码如下:
控制器:
$artist_likes_profile = Fanartist::profile_fan_likes(Auth::user()->get()->id);
$artist_likes = json_encode(array("name"=>$artist_likes_profile));
return View::make('artists.show', compact('artist'))
->with('artist_likes', $artist_likes);
HTML:
<input type="hidden" id="js-helper-artist-likes" name="js-helper-artist-likes" value="<? php echo $artist_likes ?>">
JS:
var artist_likes = $('#js-helper-artist-likes').val();
console.log(artist_likes);
但是,运行它,我只看到控制台中的 artist_likes 变量显示为"{",而不是实际的 json 字符串。
当我添加这两行时(尝试解码 js 中的 json 变量):
var artist_likes_decoded = $.parseJSON(artist_likes);
console.log(artist_likes_decoded);
我得到错误:
Uncaught SyntaxError: Unexpected end of input
我知道 JSON 字符串正在填充 value 字段,因为我在页面源中看到了这一点:
<input type="hidden" id="js-helper-artist-likes" name="js-helper-artist-likes" value="{"name":[{"id":215,"fbid":"19538277626","stage_name":"311","city":"","state":"","image_path":"http:\/\/graph.facebook.com\/19538277626\/picture?width=720&height=720",
"description":"311 was formed in 1990 in Omaha, Nebraska."},{"id":18,"fbid":"14591271531","stage_name":"Beck","city":"","state":"","image_path":"https:\/\/graph.facebook.com\/14591271531\/picture?width=720&height=720",
"description":""},{"id":47,"fbid":"137029526330648","stage_name":"Disclosure","city":"","state":"","image_path":"https:\/\/graph.facebook.com\/137029526330648\/picture?width=720&height=720","description":""},
{"id":11,"fbid":"152513780224","stage_name":"Arcade Fire","city":"","state":"","image_path":"https:\/\/graph.facebook.com\/152513780224\/picture?width=720&height=720","description":""}]}">
任何想法我做错了什么?谢谢。
【问题讨论】:
-
可以看到value属性又马上关闭了value="{"
-
?这是什么意思?
标签: javascript php jquery json laravel-4