只是一個簡短的概述是我想做的事:
我從MySQL-dB的「GridView的」含cargodata。 網格包含一個複選框,其中貨物id爲每行的值。 現在用戶可以選擇多個貨物元素並生成一個包含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。
這裏是一部分,在那裏我得到並處理值從選中的複選框:現在
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選定的複選框並忽略其他〜3.000複選框。
所以,現在我不知道哪裏出了問題,我沒有丟失$_POST
內的複選框值 - 在我處理數據之前。
我希望有人能給我一些提示或建議。
提前感謝和問候 tireniets
更新#1(23-12-2014): 我現在試圖從提供的鏈接通過建議donald123也提示Pankajkatiyar proviced。
添加並將max_input_vars
設置爲apache2配置不會改變任何結果,因爲我更改了post_max_size
。
我有不好的感覺,我正在監督一些事情。
SOLUTION(23-12-2014):
嘿傢伙,
還向我道歉....設置max_input_vars裏面的php.ini中已經工作。問題在於,我在max_input_vars行之前監督了分號。我的應用程序現在按預期工作。
問候&節日快樂itreniets
如果你的var_dump是'$ _ POST [ 「選擇」]'? – vaso123
也許重複的內容見http://stackoverflow.com/questions/9399315/how-to-increase-maximum-post-variable-in-php – donald123
這個鏈接可以幫助你max_input_var [添加一行到httpd.conf]( http://php.net/manual/en/configuration.changes.php) –