ajax序列化大量数据传

19 篇文章 1 订阅
5 篇文章 0 订阅
本文探讨了前端如何通过序列化技术,如serialize(),将大量输入数据压缩并安全地传送到后端,避免内容长度限制。重点讲解了HTML表格结构和JavaScript代码实现,以及如何使用PHP的parse_str进行数据重构。
摘要由CSDN通过智能技术生成

之前碰到要求前端传大量数据到后台重组,正常传值可能会超出内容限制大小,又不想改动配置,网上查了序列化的方法

//html部分
{volist name="list" id="view" key="lk"}
	<div class="list-{$lk}">
	    {volist name="view" id="vi"}
		    <div class="table-content">
                <input type="text" value="{$vi}" name="data_{$i}[]"/>
            </div>
	    {/volist}
	    <div class="table-content table-operat">
            <a class="del" data-num={$lk}>删除</a>
        </div>
	</div>
{/volist}


//js部分
var number = $('#number').val();//有多少项

var dataArr={};//必须用这个,数组[]、arrray()都不行

for (var i = 1; i< number; i++) {
    dataArr['data_'+i] = $('input[name="data_'+i+'[]"]').serialize();

}

 后台接收到的数据

array (size=15)
  'data_1' => string 'data_1%5B%5D=%E4%B8%83%E4%B8%83%E4%B8%83&data_1%5B%5D=%E4%B8%8D%E4%B8%8D%E4%B8%8D' (length=81)
  'data_2' => string 'data_2%5B%5D=11&data_2%5B%5D=222' (length=32)
  'data_3' => string 'data_3%5B%5D=11111&data_3%5B%5D=22' (length=34)
  'data_4' => string 'data_4%5B%5D=111&data_4%5B%5D=22' (length=32)
  'data_5' => string 'data_5%5B%5D=111&data_5%5B%5D=22' (length=32)
  'data_6' => string 'data_6%5B%5D=111&data_6%5B%5D=22' (length=32)
  'data_7' => string 'data_7%5B%5D=111&data_7%5B%5D=222' (length=33)
  'data_8' => string 'data_8%5B%5D=111&data_8%5B%5D=222' (length=33)
  'data_9' => string 'data_9%5B%5D=111&data_9%5B%5D=222' (length=33)
  'data_10' => string 'data_10%5B%5D=111&data_10%5B%5D=222' (length=35)
  'data_11' => string 'data_11%5B%5D=1970-01-01+08%3A00%3A00&data_11%5B%5D=2021-10-23+22%3A22%3A00' (length=75)
  'data_12' => string 'data_12%5B%5D=11&data_12%5B%5D=22' (length=33)
  'data_13' => string 'data_13%5B%5D=111&data_13%5B%5D=22' (length=34)

用parse_str()函数解析(把查询字符串解析到变量中:)

<?php
parse_str("name=Bill&age=60");
echo $name."<br>";//Bill
echo $age;//60
?>
for($i = 1;$i<count($arr);$i++){
    parse_str($params['data_'.$i]);
	$newKey = 'data_'.$i;//拼接键名
	$newArr['data_'.$i] = $$newKey ;//要用两个$$符
}

就能转换成数组操作了。有些词语是个人理解,可能不是那么专业,请多包涵

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值