首先载入jquery库和jquery.serialize-object.js,在我打包的源码中这两个js文件,其中jQuery是引用的CDN资源。
$(function(){ $(document).on('click', '#subbtn', function(event) { event.preventDefault(); var json_data = $('#myform').serializeJSON(); $.post('post.php', json_data, function(data) { console.log(data); }); }); });
上述代码中,我们只需要使用$('#myform').serializeJSON()
就可以获得整个表单所有字段的数据,并以json格式序列化,这时post的数据变成以下格式:
{"user":{"email":"demo@example.com","skill":["html5","javascript","PHP","MySQL"],"salary":"5000","intro":"的撒的\r\n天654\r\n第三方"}}
得到的是一个json格式的数据,看起来是不是很爽了。
当然jquery.serialize-object.js还提供了一个序列化对象的方法:serializeObject,使用如下代码可以得到一个javascript object对象:
var obj_data = $('#myform').serializeObject();
PHP接收到post数据后,可以将其转成数组就可以很好的操作数组了。
更多有关表单数据序列化的内容,请参考jQuery Serialize Object项目github地址:
技术交流QQ群:15129679