标签:
之前传json的时候,用到的都是ajax,所以有些知识盲点就这么容易的避过了。最近项目中需要用到表单传一个json对象,踩了一个小坑,怪只怪在自己看书的时候太不仔细,下边来做个总结。
demo1.html:
1 <body> 2 <form action="eg.php" method="post" name="fom"> 3 <input type="text" name="txt" /> 4 <input type="submit" /> 5 </form> 6 <script src="jquery-1.11.3.min.js"></script> 7 <script type="text/javascript"> 8 9 //创建json对象 10 var person = { 11 "name": "huyawei", 12 "sex" : "male" 13 } 14 $("[type=submit]").click(function(){ 15 //将文本框的值设为这个json对象 16 $("[type=text]").val(person); 17 }); 18 19 </script> 20 </body>
建一个php文件来接收传过去的值
<?php var_dump(json_decode($_POST[‘txt‘])->name); ?>
提交表单
我们会看到这样一个结果 null;
仔细查了下,前台传json和数组到后台时,需要转化为字符串形式。所以,我们只需要把上面的html文件的第16行改为:
$("[type=text]").val(JSON.stringify(person))
通过json对象的stringify函数,将json对象转化为字符串形式,这样就ok了,再来看下浏览器中的结果
因为之前遇到json一般都是用的ajax,而ajax会自动把你的值转化为字符串格式传过去,所以就不需要在自己去转化了。
有什么自己理解不到位的地方,还望大家指出,谢谢。
标签:
原文地址:http://www.cnblogs.com/huyawei/p/5137676.html