PHP - 选定的复选框未完全传递到$ _POST-Array

时间:2014-12-23 12:14:34

标签: php arrays checkbox

简要概述我想做的事情:

我有一个" 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

1 个答案:

答案 0 :(得分:0)

我必须道歉....在php.ini中设置max_input_vars已经有效了。 问题是,我在行max_input_vars之前监督了分号。 我的应用程序现在按预期工作。

最好的问候&amp;节日快乐 itreniets