1

我正在开始网络编程,因为到目前为止我只用于网页设计。

我的问题是我做了一项调查,显示每个部门有 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”。所以在帖子中,参数字符串是:

...&1_0=X&1_1=X&1_2=X&1_3=X... 

(X 是用户给问题的值)。

所以问题是:解决它并使用 AJAX 将大量数据发送到服务器而不进行修剪的最合适的方法是什么?

真诚的,感谢您的帮助:)

4

3 回答 3

2

将 ajax 类型更改为POST,而不是GET从中获取数据$_POST。您的数据可能超出最大查询字符串长度。

于 2013-01-21T12:53:11.417 回答
0

Ajax 只能在查询字符串中获取数据。因此,如果没有正确发送大数据,则可能是您的 server/application.platform 的限制。您可能会考虑增加 max_input_vars。并确保您使用 POST 而不是 GET

于 2013-01-21T12:53:28.897 回答
0
    $.ajax({
      type: "POST",
      url: "some.php",
      data: { name: "John", location: "Boston" }
    }).done(function( msg ) {
      alert( "Data Saved: " + msg );
    });

只需使用上述语法,我认为您不需要序列化数据

于 2013-01-21T13:06:21.410 回答