我正在尝试将PHP变量发送到我的javascript。为了做到这一点,我使用json对php变量进行编码,使用我的控制器将其发送到我的视图,将其用作隐藏html表单中的值,然后使用js拉取值,使用parseJSON获取最终产品。
HTML (我正在使用laravel,括号等同于php标记):
<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变量中正确显示,则这是不可能的。
任何想法我做错了什么?谢谢。
答案 0 :(得分:0)
<input type="hidden" id="js-helper-artist-likes" name="js-helper-artist-likes" value="{{ echo $artist_likes}}">
答案 1 :(得分:0)
您可以使用:
<input type="hidden" id="js-helper-artist-likes" name="js-helper-artist-likes" value="<?= json_encode($artist_likes) ?>">
答案 2 :(得分:0)
<?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>