在项目开发中,做微信菜单管理功能的时候,微信菜单数据是以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);
宠物免费领养小程序,欢迎来踩