在项目开发中,做微信菜单管理功能的时候,微信菜单数据是以json格式保存在数据库中的,如下:
{
"menu": {
"button": [{
"name": "扭蛋",
"sub_button": [{
"name": "扭蛋商城",
"type": "view",
"url": "http:\/\/www.jh-brands.com\/m"
}]
}, {
"name": "游戏",
"sub_button": [{
"name": "扭蛋游戏",
"url": "http:\/\/www.jh-brands.com\/m",
"type": "view"
}]
}, {
"name": "推荐文章",
"sub_button": [{
"type": "view",
"name": "搜狗搜索",
"url": "http:\/\/www.soso.com\/"
}]
}]
}
}当需要编辑微信菜单的时候,由于是采用的外部js方法,没有办法把php的值直接赋值为到js中,所以考虑先把json数据存放到页面总的隐藏域中,然后在外部js中通过获取属性方法,获取到隐藏域中保存的微信菜单json数据,但是在实际使用的过程中,发生了错误,外部js获取到的隐藏域的值只有"{",后面的值都无法获取到。
这个时候需要把json数据转化成json字符串,使用方法为
<input type="hidden" name="menu" id="menu" value="">
<script type="text/javascript">
var menu = document.getElementById("menu");
var menu_list = <?=$menu;?>;
menu.setAttribute('value',JSON.stringify(menu_list));
</script>这里我采用js向隐藏域中赋值的方法,将菜单数据保存到隐藏域中。
然后在外部js中重新将json字符串转换成json格式即可:
var tmp_obj = $("[name='menu']").val();
var obj = JSON.parse(tmp_obj);
宠物免费领养小程序,欢迎来踩