我正在尝试向我的javascript发送一个PHP变量。为了做到这一点,我用json对php变量进行编码,用我的控制器将它发送到我的视图,以隐藏的html形式使用它作为一个值,然后用js提取值,使用parseJSON获得最终产品。
(我使用的是laravel,括号相当于标记):
<input type="hidden" id="js-helper-artist-likes" name="js-helper-artist-likes" value="{{$artist_likes}}">
JS
var artist_likes = $('#js-helper-artist-likes').val();
console.log(artist_likes);
在页面源代码中,我看到这个值是用json字符串填充的,但是当我像上面这样从js将它打印到控制台时,所显示的只有:[{
。
我不知道这是为什么。
我想表演:
var artist_likes_decoded = $.parseJSON(artist_likes);
要获得JS中的解码变量,这是不可能的,但如果js中的artist_likes变量中没有正确的编码字符串,这是不可能的。
知道我做错什么了吗?谢谢。
发布于 2014-08-06 21:28:27
<input type="hidden" id="js-helper-artist-likes" name="js-helper-artist-likes" value="{{ echo $artist_likes}}">
发布于 2014-08-06 21:42:22
你可以用:
<input type="hidden" id="js-helper-artist-likes" name="js-helper-artist-likes" value="<?= json_encode($artist_likes) ?>">
发布于 2014-08-06 22:26:32
<?php
$yourVariable ="something";
$arr = json_encode(array("name"=>$yourVariable));
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>
<input type="hidden" id="js-helper-artist-likes" name="js-helper-artist-likes" value='<?php echo $arr; ?>'>
<script>
$(document).ready(function(){
var artist_likes = $('#js-helper-artist-likes').val();
console.log($.parseJSON(artist_likes));
});
</script>
</body>
</html>
https://stackoverflow.com/questions/25174727
复制相似问题