繁体   English   中英

将JSON编码的PHP变量发送到JS

[英]Sending a JSON encoded PHP variable to JS

我正在尝试将PHP变量发送到我的JavaScript。 为了做到这一点,我使用json对php变量进行编码,使用控制器将其发送到我的视图,将其用作隐藏的html形式的值,然后使用parseJSON获得最终产品,并使用js提取该值。

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变量中正确显示编码后的字符串,这是不可能的。

有什么想法我做错了吗? 谢谢。

<input type="hidden" id="js-helper-artist-likes" name="js-helper-artist-likes" value="{{ echo $artist_likes}}">

您可以使用:

 <input type="hidden" id="js-helper-artist-likes" name="js-helper-artist-likes" value="<?= json_encode($artist_likes) ?>">
    <?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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM