当前位置: 首页 > 知识库问答 >
问题:

JQuery、AJAX、PHP传递大量数据导致错误

邓德厚
2023-03-14

我正在尝试使用AJAX将页面中的大量数据传递给PHP脚本。这对于一些少量的数据来说很好,但是当有更多的数据时会出现以下错误。

"PHP Warning:  Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0,"

我正在使用的JQuery是:

var data = $flowchart.flowchart('getData');

$.ajax({
    type: "post", 
    cache: false,
    data: data,
    url: "test.php?name=" +  encodeURIComponent(name) + "&action=" + action,
    success: function(data) {
        console.log (data)
    }
}); 

数据实际上是一个json数据字符串。

eg:
sites: 0: {fromOperator: "SiteA", fromConnector: "output_1", fromSubConnector: "0", toOperator: "location1", toConnector: "input_1", …} 1: {fromOperator: "SiteA", fromConnector: "output_2", fromSubConnector: "0", toOperator: "location2", toConnector: "input_1", …} 2: {fromOperator: "start", fromConnector: "output_1", fromSubConnector: "0", toOperator: "SiteA", toConnector: "input_1", …}

并在PHP中读取,只需使用:

// Values from data.
$sites = (isset($_POST['sites']) && count($_POST['sites']) > 0) ? $_POST['sites'] : NULL;
$staff = (isset($_POST['staff']) && count($_POST['staff']) > 0) ? $_POST['staff'] : NULL;

我怎么能传递大量的数据链接这个,但仍然使用$_POST在PHP中引用它['sites']

我以为我需要用JSON做一些事情,但我可以弄清楚什么。

谢啦

共有2个答案

利稳
2023-03-14

在php标签后的开始添加希望它有效。

ini_set('max_input_vars', 30000);
池庆
2023-03-14

在发送之前,我通过将JSON.stringify应用于data来实现此功能:

data = encodeURIComponent(JSON.stringify(data))

$.ajax({
    type: "post", 
    cache: false,
    data: 'data=' + data,
    url: "test.php?name=" +  encodeURIComponent(name) + "&action=" + action,
    success: function(data) {
        console.log (data)
    }
}); 

然后在我的PHP中使用:

$js= json_decode($_POST['data'], true);
$staff= (isset($js['sites']) && count($js['sites']) > 0) ? $js['sites'] : NULL;
$staff= (isset($js['staff']) && count($js['staff']) > 0) ? $js['staff'] : NULL;

这似乎像以前一样工作,但允许更大的数据。

 类似资料:
  • 问题内容: 大家好,尝试做一些简单的事情:将2个文本变量传递给php脚本,然后将它们插入MySQL数据库。但是由于某种原因,我无法传递变量(因此,我在数据库中只得到空记录)。 和PHP: 任何人愿意快速浏览一下并指出我(可能是显而易见的)错误吗?一天来一直让我发疯! 谢谢! 问题答案: 这必须工作: 和PHP(只有更改才能发布) 同样为了调试,我建议在检查工具中使用firebug或chrome的构

  • 问题内容: 我总是收到“错误”警报,但我无法弄清楚出了什么问题。我只是想取回我发送的字符串(“ testexpression”)。它必须与数据部分有关,因为没有参数就可以工作。 这是jQuery部分: 这是控制器: (更新:类型为post,我也尝试使用get进行测试,然后将其留在了里面) 问题答案: 您需要将数据作为字符串/ json发送。您正在发送一个javascript对象。另外,该URL可能

  • 问题内容: 我如何将数据从随后的php传递回ajax? PHP ajax 我的问题是如何在此处显示值?警报消息给我“未定义”? 问题答案: 您可以按照以下方式进行操作。 JS

  • 问题内容: 我正在尝试将数据发送到我的PHP脚本来处理一些东西并生成一些东西。 在我的PHP文件中,我尝试检索专辑名称。虽然当我验证它时,我创建了一个警报以显示什么都没收到,但是我尝试通过 虽然会说undefined:/ 问题答案: 您正在发送POST AJAX请求,因此请在您的服务器上使用来获取值。我也建议您这样编写请求,以确保正确的编码: 或简称为: 如果您想使用GET请求: 或简称为: 现在

  • 问题内容: 您好,我是使用jQuery和Ajax的新手。我正在尝试使用Jquery POST方法将数据提交到服务器。我传递的数据是一个字符串。现在,我无法理解如何传递数据以及如何检索数据。我曾尝试搜索有关我的问题的文章,但没有找到任何文章。我相信我的问题是非常基本的。 现在,我将发布postContacts动作的代码,这不是什么大问题。 但是我对于必须如何检索数据感到困惑。任何帮助表示赞赏。我正在

  • 问题内容: 我想在PHP中操纵JavaScript数组。可以做这样的事情吗? 活动是一维数组,例如: 尝试此脚本时无法完成…如何解决? 问题答案: 而已!现在您可以在PHP中访问它: