简要概述我想做的事情:
我有一个" Gridview"包含来自mysql-db的cargodata。 Grid包含一个复选框,其中cargoid为每一行的值。 现在,用户可以选择多个货物元素并生成带有collis和其他信息的pdf。
这里有一个网格片段,它是如何通过php构建的:
<table>
<tr id="first"></tr>
<?php
$collection = $_barcode->getBarcodeCollection($_SESSION['sort'], $_SESSION['order']);
foreach ($collection as $row)
{
echo "<tr class='datarow'>";
echo "<td><input type='checkbox' name='select[]' value='".$row['id']."' /></td>";
echo "<td onclick=''>".$row['sku']."</td>";
echo "<td>".$row['colli_']."/".$row['colli']."</td>";
echo "<td>".$_man->getManufacturerById($row['manufacturer'])."</td>";
echo "<td>".$row['barcode']."</td>";
echo "</tr>";
}
?>
</table>
如果我只选择几个条目,这个工作正常。
我的数据库表现在有~4.000个条目,所以当我选择网格中的所有元素时,它只能将1.000个元素传递给$_POST
- 数组,因为php默认将max_input_vars
设置为1.000。 / p>
以下是部分,我从中选中并处理已选中复选框的值:
if ($_POST['formaction'] == "generateBarcodes")
{
$barcodedata = $_POST["select"];
$_ev = new Eventmgr();
if($barcodedata!=null)
{
$barcodeitems = array();
$data = array();
// get all selected barcodes
foreach ($barcodedata as $item)
{
$barcodeitems[] = $_barcode->getBarcodeById($item);
}
// Create an array which holds all data seperated by manufacturer
foreach($barcodeitems as $i)
{
$data[$i["manufacturer"]][] = $i;
}
$_ev->logEvent("Begin with generating process....",1);
$pdfgen = new generatepdf($data);
$pdfgen->generatePDF();
}
else
{
$_ev->logEvent("Keine Barcodes ausgewählt!",2);
}
}
那么现在问题是什么?
我已将max_input_vars
设置为6.000并重新启动我的debian运行的机器。
但毕竟它只选择了〜900个选中的复选框,并忽略了其他~3000个复选框,即使它们被选中了。
所以现在我不确定那里出了什么问题,在处理数据之前,我没有$_POST
- 数组中缺少的复选框值。
我希望有人可以给我一些提示或建议。
提前致谢并致以最诚挚的问候 tireniets
更新#1(23-12-2014): 我现在尝试了 donald123 提供的链接以及提示 Pankajkatiyar 提供的建议。
添加max_input_vars
到apache2配置并没有改变任何内容,结果与更改post_max_size
相同。
我有一种不好的感觉,我在监督某些事情。
解决方案(23-12-2014):
嘿,伙计们,
我要道歉....设置php.ini中的max_input_vars已经有效了。问题是,我在行max_input_vars之前监督了分号。我的应用程序现在按预期工作。
最好的问候&amp;节日快乐itreniets
答案 0 :(得分:0)
我必须道歉....在php.ini中设置max_input_vars已经有效了。
问题是,我在行max_input_vars
之前监督了分号。
我的应用程序现在按预期工作。
最好的问候&amp;节日快乐 itreniets