页面表单预览数据传递注意事项

有时候需要提供给用户对刚填写的表单“预览”功能,预览后还要返还源页面,并且保证页面数据不丢失。

有的是采用js功能给一个弹出框。

但有的需要真实html页面的跳转,我昨晚上弄的就是这个,现在记下来备用

不好意思,我暂时用PHP代码来讲,其它的语言中也应该有这些api函数:

1.form表单提交,获取多个input表单,组成数组。

2.显示预览页面时,先将数组用json_encode();进行编码,然后$smarty->assign('var', $var)到预览页面

3.在预览页面用html标签<textarea><{$var}></textarea>接收(我用<input type="text" ..../>,没有接收成功)

4.用form表单提交后获得该$var,由于我的页面提交后对json格式的数据中的双引号进行了转义

   所以,如果你们的也这样,就用php的htmlspecialchars_decode($var)函数将双引号还原

5.经过第四步后就可以用PHP的json_decode($var,true);进行解码,获得最初源页面提交的数组了

2012年10月25日 14:42:14

今天又发现一个问题,中文字符的json编码是用转义字符+u+16进制数字(\u5f20\u5fd7\u658c)组成的,

不知道什么原因,入库(mysql)时这里的转义斜线没有了(变成了:u5f20u5fd7u658c),再读出来json_decode()时,当然就不能显示汉字了,

我找到了义个PHP函数addcslashes($var,'\\'),这样就可以在每个转义斜线的前边再加一个转义斜线(变成了: \\u5f20\\u5fd7\\u658c),入库时由于只去掉了一个反斜线,所以格式正好正确,直接json_decode();就行了,o(∩_∩)o 哈哈

posted @ 2012-10-12 07:53  myD  阅读(712)  评论(0编辑  收藏  举报