Home > Article > Backend Development > 列表排序同一个name的表单怎么用serizelize()序列化
请教下问题,列表排序同一个name的表单怎么用serizelize()序列化呢,var paixu = $(":input[name='paixu']").serialize();用data:paixu,过去,只获取到最后一个排序。
<input type="text" name="test" value="t1"><input type="text" name="test" value="t2"><input type="text" name="test" value="t3"><input type="text" name="test" value="t4"><input type="submit" id="test" value="test"><script type="text/javascript">$("#test").click(function(){ var data; data = $(":input[name='test']").map(function(){ return $(this).val(); }).get(); alert(data);})</script>
<input type="text" name="test" value="t1"><input type="text" name="test" value="t2"><input type="text" name="test" value="t3"><input type="text" name="test" value="t4"><input type="submit" id="test" value="test"><script type="text/javascript">$("#test").click(function(){ var data; data = $(":input[name='test']").map(function(){ return $(this).val(); }).get(); alert(data);})</script>
你要么遵守 php 的约定:同名对象用数组形式命名
要么从 file_get_contents('php://input') 取回数据自行解析
data:paixu,
paixu 要是一个json格式的数据,你序列化也不行啊
非要序列化可以这样
var data = $("#form").serialize();
$.ajax({
type: "post",
url:"xx.php",
data:{'data':data},
后台获取数据 $_POST['data']
回复:jam00,相同键值的name确实有点麻烦,还是遍历比较好用些吧,谢谢了
当然你也可以用 serializeArray
var paixu = {data : $(":input[name='paixu']").serializeArray() };
不过收到的是形如这样的数组
array(
'data' => array(
array('name' => 'paixu', 'value' => 1),
array('name' => 'paixu', 'value' => 2)
)
)