Form post niet alles
Ik zit met een probleem waarvan ik de oplossing even niet zie. Ik heb een PHP script dat een tabel maakt en iedere regel van deze tabel bevat een invoerveld, checkbox en 3 hidden field. Op het einde van de tabel zit er nog een hidden field die doorgeeft hoeveel regels de tabel had zodat ik bij de verwerking een loop kan maken op de regels.
Bij het submitten van de tabel/form worden alle regels gepost en de checkbox verteld mijn script of de regel moet worden geanalyseerd.
Nu komt het probleem. Als ik de tabel/form submit dan zie ik dat er maar 199 regels worden doorgegeven. Dit heb ik gecontroleerd door die(print_r($_POST));
Helaas tellen sommige tabellen veel meer regels soms tot 1000. Weet iemand waar ik het probleem moet zoeken of hoe je hieromheen kunt programmeren. Ik heb het vermoeden dat het te maken heeft met een max size van de post, maar hier kan ik niet echt goede informatie over vinden via google. Alles spreekt elkaar tegen.
Hopelijk duwt iemand mij in de goede richting.
Geef eens een (klein) stukje van je formulier waarmee het fout gaat.
Zat in eerste instantie te denken aan een limiet van post_max_size.
Maar ik kan me niet voorstellen dat 8 mb aan data post.
Gewijzigd op 09/06/2012 14:34:36 door Bart V B
Quote:
<form id="print" name="print" method="post" action="processors/prijzencheck_overname.php">
<input type="hidden" name="totallines" id="totallines" value="464">
<table id="large" cellspacing="0">
<thead>
<tr>
<th>Overname</th>
<th>Artikelnummer</th>
<th>Titel</th>
<th>Prijs Act.</th>
<th>Prijs Advies</th>
<th>Prijs Hand</th>
<th>Advies</th>
<th>Levertijd</th>
<th class="{sorter:'metadata'}"></th>
</tr>
</thead>
<tfoot>
<tr>
<th>Overname</th>
<th>Artikelnummer</th>
<th>Titel</th>
<th>Prijs Act.</th>
<th>Prijs Advies</th>
<th>Prijs Hand</th>
<th>Advies</th>
<th>Levertijd</th>
<th></th>
</tr>
</tfoot>
<tbody>
<tr>
<input type="hidden" name="0save" id="0save" value="nee">
<td><input name="0save" type="checkbox" value="0584"/></td>
<td>0584</td>
<td><div align="left">PSP WWE Smackdown vs. Raw 2009</div></td>
<td>11.99</td>
<td><div align="left">N.B.
</div></td>
<input type="hidden" name="0auto_price" id="0auto_price" value="none">
<input type="hidden" name="0normal_price" id="0normal_price" value="11.99">
<td><div align="left">€
<input class="inputprijs" type=text name="0hand_price" id="0hand_price" size="6" value="">
</div></td>
<td><input type="hidden" name="0visable" id="0visable" value="0">
</td>
<td>4 t/m 8/0</td>
<td class="{sortValue: 0"}></td>
</tr>
<input type="hidden" name="totallines" id="totallines" value="464">
<table id="large" cellspacing="0">
<thead>
<tr>
<th>Overname</th>
<th>Artikelnummer</th>
<th>Titel</th>
<th>Prijs Act.</th>
<th>Prijs Advies</th>
<th>Prijs Hand</th>
<th>Advies</th>
<th>Levertijd</th>
<th class="{sorter:'metadata'}"></th>
</tr>
</thead>
<tfoot>
<tr>
<th>Overname</th>
<th>Artikelnummer</th>
<th>Titel</th>
<th>Prijs Act.</th>
<th>Prijs Advies</th>
<th>Prijs Hand</th>
<th>Advies</th>
<th>Levertijd</th>
<th></th>
</tr>
</tfoot>
<tbody>
<tr>
<input type="hidden" name="0save" id="0save" value="nee">
<td><input name="0save" type="checkbox" value="0584"/></td>
<td>0584</td>
<td><div align="left">PSP WWE Smackdown vs. Raw 2009</div></td>
<td>11.99</td>
<td><div align="left">N.B.
</div></td>
<input type="hidden" name="0auto_price" id="0auto_price" value="none">
<input type="hidden" name="0normal_price" id="0normal_price" value="11.99">
<td><div align="left">€
<input class="inputprijs" type=text name="0hand_price" id="0hand_price" size="6" value="">
</div></td>
<td><input type="hidden" name="0visable" id="0visable" value="0">
</td>
<td>4 t/m 8/0</td>
<td class="{sortValue: 0"}></td>
</tr>
Hiertussen wordt natuurlijk iedere regel van de tabel weer herhaald en bovin zie je dat dit dus 464 keer gebeurd (totallines)
Hieronder het einde van het formulier/tabel:
Quote:
<tr>
<input type="hidden" name="464save" id="464save" value="nee">
<td><input name="464save" type="checkbox" value="11164"/></td>
<td>11164</td>
<td><div align="left">PSP Fate: Extra Collectors Edition</div></td>
<td>28.99</td>
<td><div align="left">N.B.
</div></td>
<input type="hidden" name="464auto_price" id="464auto_price" value="none">
<input type="hidden" name="464normal_price" id="464normal_price" value="28.99">
<td><div align="left">€
<input class="inputprijs" type=text name="464hand_price" id="464hand_price" size="6" value="">
</div></td>
<td><input type="hidden" name="464visable" id="464visable" value="1">Ontzichtbaar maken<input type="hidden" name="464visable" id="464visable" value="0">
</td>
<td>4 t/m 8/1</td>
<td class="{sortValue: 464"}></td>
</tr>
</tbody>
</table>
<input name="Overname" class="inputbutton" id="Overname" type="submit" value="Maak export" onclick="return Confirmovername()"/>
</form>
<input type="hidden" name="464save" id="464save" value="nee">
<td><input name="464save" type="checkbox" value="11164"/></td>
<td>11164</td>
<td><div align="left">PSP Fate: Extra Collectors Edition</div></td>
<td>28.99</td>
<td><div align="left">N.B.
</div></td>
<input type="hidden" name="464auto_price" id="464auto_price" value="none">
<input type="hidden" name="464normal_price" id="464normal_price" value="28.99">
<td><div align="left">€
<input class="inputprijs" type=text name="464hand_price" id="464hand_price" size="6" value="">
</div></td>
<td><input type="hidden" name="464visable" id="464visable" value="1">Ontzichtbaar maken<input type="hidden" name="464visable" id="464visable" value="0">
</td>
<td>4 t/m 8/1</td>
<td class="{sortValue: 464"}></td>
</tr>
</tbody>
</table>
<input name="Overname" class="inputbutton" id="Overname" type="submit" value="Maak export" onclick="return Confirmovername()"/>
</form>
Toevoeging op 09/06/2012 21:32:28:
Ik heb het probleem gevonden. De oorzaak dat er maar 199 regels van de tabel worden gelezen is dat de max_input_vars standaard 1000 is en doordat het een vrij grote tabel/form kan worden ga je dus als snel over dit totaal heen. In mijn eigen testomgeving kan ik natuurlijk dit makkelijk veranderen, maar weet iemand hoe en of dit mogelijk is op een gehoste server.
Of heeft iemand een beter idee om een script te schrijven die het mogelijk maakt dat de gebruiker per regel van de tabel zelf het invoerveld kan gebruiken en de checkbox als controle dat die regel in de database moet worden aangepast.
Hopelijk heeft iemand een goed idee hoe hieromheen te gaan.