1 回答

TA贡献1815条经验 获得超13个赞
如果您使用 GET,您肯定会遇到浏览器的字符限制。
相反,您应该在表单中使用POST 方法,例如
<form action="http://example.com" method="post">
当然,您max_input_vars应该超过您的字段最大金额。此设置限制了 superglobals $_GET,$_POST并$_COOKIE单独使用。
如果您仍在使用 POST,则应验证您的max_input_vars设置是否处于活动状态:
<?php
echo "max_input_vars: " . ini_get('max_input_vars') . PHP_EOL;
echo "post_max_size: " . ini_get('post_max_size') . PHP_EOL;
?>
你说你添加php.ini到public_html. 通常php.ini不位于此文件夹中(可能是您的主机的特殊内容?!)。似乎您的 php.ini 格式不正确,因为您使用了 .htaccess 关键字,php_value并且您忘记对.htaccess使用等号max_input_vars。
如果您的 php.ini 不起作用,您应该尝试将所有设置添加到您的 .htaccess 中,如下所示:
php_value post_max_size 512M
php_value max_input_vars 2000
正如@NigelRen 建议的那样,您也可以拆分请求以减少字段总数。这可以通过使用AJAX来解决。它允许在不重新加载页面的情况下向服务器发送请求。实现这一点的一个很好的 JavaScript 框架可能是jQuery。通过这种方式,您可以在失去焦点后更新单个字段,或者添加一个单独的更新按钮,该按钮仅将这些行发送到已更改的服务器(例如,每个输入都会获得一个 ID,并且您计算所有具有焦点的行)。使用此方法,您还可以使用简单循环限制发送到服务器的字段数量(例如,每个循环仅更新 100 个字段)。
另一种方法是分页。这意味着您每页仅显示 x 行,因此用户只能更新这些 x 行。
我建议使用 AJAX,因为它会显着降低性能要求。
- 1 回答
- 0 关注
- 153 浏览
添加回答
举报