我正在开始网络编程,因为到目前为止我只使用网页设计。
我的问题是我做了一项调查,显示每个部门有12个问题的表格。部门数量取决于之前称为“部分”的选择器。
因此,如果“section”有1个部门,表单可以显示12个问题字段,如果“section”有10个部门,则表单可以显示120个。
我在提交之前将数据序列化并编码到Base64:
// Setup call
$.ajax({
type: 'GET',
url: 'survey_actions.php&action=save',
data: { parameters: Base64.encode($("#mySurvey").serialize()) },
dataType: 'text',
beforeSend:function(){
// Load waiting panel
loader("on");
},
success:function(response){
[...]
我确定这不是干净的方法,因为我遇到了以下问题:当要填充的字段数量较少时(例如12),一切正常,但是当数字较高时(对于例子72),服务器没有收到所有数据。
字段的名称如下:“sectorID_questionID”。所以在帖子上,params字符串是:
...&1_0=X&1_1=X&1_2=X&1_3=X...
(X是用户给出的问题的值)。
所以问题是:什么是最合适的方法来解决它并使用AJAX将大量数据发送到服务器而不进行修剪?
此致,感谢您的帮助:)
答案 0 :(得分:2)
将ajax类型更改为POST
,而不是GET
,并从$_POST
获取数据。您的数据可能超过最大查询字符串长度。
答案 1 :(得分:0)
Ajax只能在查询字符串中获取数据。因此,如果没有正确发送大数据,则可能是您的服务器/ application.platform的限制。你可能会考虑增加max_input_vars。并确保您使用POST而不是GET
答案 2 :(得分:0)
$.ajax({
type: "POST",
url: "some.php",
data: { name: "John", location: "Boston" }
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
只需使用上述语法,我认为您不需要序列化数据