Hallo,
vielen Dank für den Tipp, das war es natürlich. Oftmals übersieht man halt die einfachen Dinge.
Danke und viele Grüße,
emh
Hallo,
vielen Dank für den Tipp, das war es natürlich. Oftmals übersieht man halt die einfachen Dinge.
Danke und viele Grüße,
emh
Hallo,
eine stark beschnittene Version des Quelltextes sollte wie folgt aussehen:
<html>
<head>
</head>
<script type="text/javascript"><!--
function submitData() {
// check formular data and return false or true
var isFormValid = true;
// ...
return isFormValid;
}
setInterval("doReload()", "30000");
function doReload() {
document.formular.submit();
}
--></script>
<body>
<form name="formular" action="/CalledServlet" onSubmit="return submitData()">
<input type="submit" name="submitButton" value="Submit">
<input type="checkbox" name="checkbox1" value="1">
<input type="checkbox" name="checkbox2" value="2">
<input type="checkbox" name="checkbox3" value="3">
<input type="checkbox" name="checkbox1000" value="1000">
</form>
</body>
</html>
Alles anzeigen
Die Anzahl der Checkboxen hängt schlicht und einfach von der Anzahl der Einträge in der Datenbank ab. Das Absenden des Formulars erfolgt über JavaScript, da ein Absenden, wie im Code ersichtlich, aus mehreren Gründen erfolgen kann, z. B. über ein automatisches Reload. Das Problem tritt aber auch auf, wenn das Formular direkt abgeschickt wird.
Wie gesagt, der Code funktioniert voll und ganz, wenn die Anzahl der (angeklickten) Checkboxen (und damit die Anzahl der übermittelten Felder) nicht zu groß wird, doch bei einem TestCase von tausend angeklickten Checkboxen wird das Formular gar nicht erst abgeschickt (also kein Server-Timeout), sondern ein JavaScript-Fehler erscheint an der jeweiligen JavaScript-Zeile, in der das Formular abgeschickt wird.
Also im Falle eines autom. Reloads in der Zeile document.formular.submit();
Wird das Formular normal abgeschickt, passiert gar nichts mehr.
Der TestCase mit den 1000 Checkboxen mag konstruiert erscheinen, aber ich würde doch gerne wiesen wie und wieso dieses Verhalten zustande kommt.
Gruß emh
Hallo,
ich habe folgendes Problem, dass das Absenden eines Formulars (mit POST) nicht mehr funktioniert, wenn die Anzahl der zu übermittelnden Felder sehr groß wird.
Bei der HTML-Seite handelt es sich um eine Seite, die Daten aus einer Datenbank in einer Tabelle darstellt. Zu jedem Eintrag existiert eine Checkbox. Wenn der User nun nur ein paar Checkboxen anklickt, funktioniert alles prima, die jeweiligen Checkboxen werden als Formularfelder übertragen usw.
Wenn er aber bspw. alle markiert (und das sind bei mir im Testfall gerade 1000), dann funktioniert die CGI-Übermittlung nicht mehr.
Stattdessen wirft der Browser einen JavaScript-Fehler, nämlich "Ungültige Syntax in Zeile ...", und zwar genau in der Zeile, in der die JavaScript-Funktion formular.submit(); aufgerufen wird.
Wo liegt der Fehler / das Problem? JavaScript kann ich mir eigentlich nicht vorstellen. Liegt das Problem beim Versenden einer riesigen Anzahl an Formularfelder via POST?
Gruß emh