【问题标题】:How to save the post variables with more than 1000 post variables?如何保存超过 1000 个帖子变量的帖子变量?
【发布时间】:2017-11-28 07:33:28
【问题描述】:

我想保存包含 1000 多个帖子变量的帖子变量。我尝试使用提交按钮保存,但由于 php.ini 限制 max_input_vars 默认设置为 1000,它没有保存超过 1000 个帖子变量。我不想编辑 php.ini 文件但仍想提交这些帖子变量。我知道使用默认表单提交是不可能的。有没有像 jquery 那样的方法来将它们保存在数据库中。

实际上,我尝试使用 jquery ajax 方法,但仍然重现相同的错误。

$("#single-form").submit(function(event) {
    event.preventDefault();
    var table_data = $(this).serialize();
    // console.log(table_data);
    table_action = 'backend_table_data_save';
    $.ajax({
        url : ajaxurl,
        type: 'post',
        data: {
            action  : 'backend_ajax',
            _action : table_action,
            table_data: table_data,
            },
        beforeSend: function(){
            $('.backend-ajax-loader-div').show();
        },
        complete: function(){
            $('.backend-ajax-loader-div').hide();
        },
        success: function (response){
            $('.ajax-loaded-div').html(response);
        }
    });
});

但是当我打印 table_data 后变量时,它只返回 1000 个后变量。

parse_str( $_POST['table_data'], $post_variables ); 
echo "<pre>";
print_r($post_variables); 
echo "</pre>"; 
die();

任何帮助将不胜感激:)

【问题讨论】:

  • 服务器的“普通”帖子和 jquery 帖子没有区别。您可以尝试在 jquery 中将您的帖子分成 1000 个块并一次发布一个块
  • 尝试组合输入,例如姓名年龄地址、、使用 user_info=name_here&age_here 等。

标签: php jquery ajax


【解决方案1】:

如果您不想编辑 php.ini,可以在代码中初始化 ini_set('max_input_vars', 1000)。否则,您需要将客户端的 post 数组拆分为块并分别触发 ajax 请求。

【讨论】:

    【解决方案2】:

    如果您的数据相似,您可以将它们作为数组发布,如果您的数据更复杂,您可以创建一个 json 对象,在提交时使用数据更新它,然后通过将它放在隐藏的输入字段中来发布 stringify 对象(这种方法需要一点javascript,但不是太难),在以前的情况下,您将拥有一个变量。您能否提供有关您要发布的内容的更多信息(html 表单)?

    【讨论】:

      猜你喜欢
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多