jq提交所有表单数据问题!!

slamdunktv 2016-05-21 03:01:20

<!DOCTYPE html>
<html>

<head>
<meta charset="UTF-8">
<title></title>
<script src="js/jquery-1.11.3.min.js" type="text/javascript" charset="utf-8"></script>
</head>

<body>
<form>

<div>
姓名:<input type="text" id="" value="" name="username"/>
</div><br />

<div>
地址:<select name="sel">
<option value="1">上海</option>
<option value="2">北京</option>
<option value="3">广州</option>
</select>
</div><br />

<div>
简介:<br />
<textarea name="abs" rows="6" cols="50"></textarea>
</div><br />

<div>
篮球:<input type="checkbox" id="" value="篮球" name="po"/> 足球:
<input type="checkbox" id="" value="足球" name="fu"/> 羽毛球:
<input type="checkbox" id="" value="羽毛球" name="yi"/>
</div><br />
<div>
男:<input type="radio" id="" value="男" name="boy"/> 女:
<input type="radio" id="" value="女" name="girl"/>
</div>
<input type="submit" value="提交" />
</form>
</body>
<script type="text/javascript">
$(function(){
$("form").submit(function(){
var data = $("this").serializeArray();
var odata = JSON.stringify(data);

$.post('/formdata.php',odata,function(data){
if(data.msg == 'suc'){
alert('添加成功');
}
},"JSON")
});

});
</script>
</html>


我就想通过serialize把所有表单数据接收,并转成JSON格式数据传给后台PHP文件。
红色部分好像不行
var data = $("this").serializeArray();
var odata = JSON.stringify(data);
上面一面获取到的是一串字符串,下面转成JSON后好像变成空了,为何会这样?
...全文
291 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
香蕉猪 2016-06-07
  • 打赏
  • 举报
回复
var data = $(this).serializeArray(); var odata = JSON.stringify(data);
licip 2016-06-02
  • 打赏
  • 举报
回复
var data = $("this").serializeArray(); 这个地方应该是: var data = $(this).serializeArray();
快乐起航2020 2016-06-01
  • 打赏
  • 举报
回复

一 、需求一加载页面就提交表单么
二、红色部分应该是键值对的参数吧
slamdunktv 2016-05-24
  • 打赏
  • 举报
回复

$(function(){               
						$("#btn").on("click",function(){
						var data = $("this").serializeArray();
						var odata = JSON.stringify(data);
						document.write(odata);
					});
					
				});
代码这样submit改成<input type="button" value="提交" id="btn"/>
slamdunktv 2016-05-24
  • 打赏
  • 举报
回复
引用 3 楼 net_lover 的回复:
你提交之前打印出odata值看看是否符合后台的要求, <input type="submit" value="提交" /> 默认就是提交了,代码又提交一次,相当于2次,你可以 <input type="submit" value="提交" />改成 <input type="button" value="提交" id="btn" /> <script type="text/javascript"> $(function(){ $("#btn").on("click",function(){ var data = $("form").serializeArray(); var odata = JSON.stringify(data); $.post('/formdata.php',odata,function(data){ if(data.msg == 'suc'){ alert('添加成功'); } },"JSON") }); </script>
document.write(odata); 打印出来是:[] 这代表是空?
孟子E章 2016-05-22
  • 打赏
  • 举报
回复
你提交之前打印出odata值看看是否符合后台的要求, <input type="submit" value="提交" /> 默认就是提交了,代码又提交一次,相当于2次,你可以 <input type="submit" value="提交" />改成 <input type="button" value="提交" id="btn" /> <script type="text/javascript"> $(function(){ $("#btn").on("click",function(){ var data = $("form").serializeArray(); var odata = JSON.stringify(data); $.post('/formdata.php',odata,function(data){ if(data.msg == 'suc'){ alert('添加成功'); } },"JSON") }); </script>
slamdunktv 2016-05-21
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
你 php 端是怎么写的? 你的浏览器支持 JSON.stringify 方法吗?
接收$_POST['data'],然后打印{msg:suc}~~~~浏览器谷歌最新版本。 话说这样转变地址栏为何会有一串表单字符?
xuzuning 2016-05-21
  • 打赏
  • 举报
回复
你 php 端是怎么写的? 你的浏览器支持 JSON.stringify 方法吗?

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧