我有大约1000个隐藏的输入要发送到laravel。我想我有2个选项来发送这些输入。
选项1:
我制作了1000个隐藏的输入并将它们发送到laravel。
<input type="hidden" name="id[1]" value="some stuff">
<input type="hidden" name="id[1]" value="some stuff">
..
<input type="hidden" name="id[100]" value="some stuff">
选项2:
我只将1个隐藏输入作为包含所有其他隐藏输入的JSON对象。
<input type="hidden name="value" value="A_JSON_OBJECT">
顺便说一句,我可以用Ajax发送表单。 我的问题是哪一个可以更快?
答案 0 :(得分:1)
我的意思是你可以在所有字段的名称中使用数组符号Open H2O Flow in your web browser: x.x.x.x:54321
,这样你就可以在服务器端收到一个数组,例如:
[]
然后使用ajax请求将数据发送到服务器端脚本,如:
//Same name for all the fields
<input type="hidden" name="id[]" value="some stuff">
在$.post('file.php', $('input[name="id[]"]').serialize(), function(response){
//Server response
});
中,您将file.php
中的数据作为数组接收。
答案 1 :(得分:0)
If you're creating 1000 HTML elements, sure browsers will handle it, but it can be surprisingly heavyweight.
The POST data would also be verbosely translated to:
id%5B%5D=Some+stuff&id%5B%5D=Some+stuff&id%5B%5D=Some+stuff&id%5B%5D=Some+stuff...
Which is a repetition of &id%5B%5D=
for every element. That's 10K of separators for 1000 items, probably 9K bigger than it needs to be (or ~7K bigger than if using a JSON-encoded array in a single field value).