Ergebnis 1 bis 5 von 5

Thema: POST: Problem beim Senden einer großen Anzahl Formularfelder

  1. #1
    HTML Newbie
    Registriert seit
    09.11.2006
    Beiträge
    3
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard POST: Problem beim Senden einer großen Anzahl Formularfelder

    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
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Forum Guru
    Registriert seit
    14.06.2004
    Ort
    Schleswig-Holstein
    Beiträge
    5.439
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Moin!

    Das ist ohne den (vermutlich endlos langen Quelltext) schwer nachvollziehbar.

    Ich stell mir auch die Fragen ...

    ... wozu derart viele Anklickbuttonbenötigt werden ?
    ... wie groß das Dokument dadurch geworden ist (Servertimeout bei der Übermittlung) ?
    ... warum du die Daten mit Javascript überträgst ?

    Gib mal bitte etwas mehr Input.

    G.a.d.M.

    Ronald

  3. #3
    HTML Newbie
    Themenstarter

    Registriert seit
    09.11.2006
    Beiträge
    3
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Hallo,

    eine stark beschnittene Version des Quelltextes sollte wie folgt aussehen:

    Code:
    <html>
    <head>
    </head>
    <script type="text/javascript"><!--
    function submitData&#40;&#41; &#123;
        // check formular data and return false or true
        var isFormValid = true;
        // ...
        return isFormValid;
    &#125;
    		
    setInterval&#40;"doReload&#40;&#41;", "30000"&#41;;
    
    function doReload&#40;&#41; &#123;
      document.formular.submit&#40;&#41;;
    &#125;
    --></script>
    
    <body>
    <form name="formular" action="/CalledServlet" onSubmit="return submitData&#40;&#41;">
    <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>
    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

  4. #4
    Forum Guru
    Registriert seit
    14.06.2004
    Ort
    Schleswig-Holstein
    Beiträge
    5.439
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Du hast die Methode der Übertragung nicht angegeben und dann wird es standardmäßig als Get-Variable übertragen, dabei ist die Anzahl der Zeichen dann begrenzt.

    Pprobiere mal dieses etwas abgewandelte Script aus (als 'checkbox.php' speichern), bei mir funktioniert es auch mit 3000 Checkboxen noch problemlos:
    Code:
    <?
    while &#40;list&#40;$name, $value&#41; = each&#40;$_POST&#41;&#41; echo "name = $name, Wert = $value
    "
    ?>
    
    <html>
    <head>
    </head>
    <script type="text/javascript">
    <!--
    function submitData&#40;&#41; &#123;
        // check formular data and return false or true
        var isFormValid = true;
        // ...
        return isFormValid;
    &#125;
    
    setInterval&#40;"doReload&#40;&#41;", "20000"&#41;;
    
    function doReload&#40;&#41; &#123;
      document.formular.submit&#40;&#41;;
    &#125;
    --></script>
    
    <body>
    <form name="formular" action="checkbox.php" method="post" onSubmit="return submitData&#40;&#41;">
    <input type="submit" name="submitButton" value="Submit">
    
    </p>
    <?
    for&#40;$i=1;$i<1001;$i++&#41;
      &#123;
      echo "<input type='checkbox' name='checkbox$i' value='$i' checked>checkbox $i
    ";
      &#125;
    ?>
    </form>
    </body>
    </html>
    G.a.d.M.

    ronald

  5. #5
    HTML Newbie
    Themenstarter

    Registriert seit
    09.11.2006
    Beiträge
    3
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    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

Ähnliche Themen

  1. Daten senden per POST
    Von Dodo im Forum Flash Forum
    Antworten: 0
    Letzter Beitrag: 21.06.2008, 11:27
  2. PHP - Problem beim Senden der Mail und eine andere Frage
    Von Thonixx im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 27.11.2007, 09:44
  3. [Php] Variablen mit Post senden
    Von Pseiko im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 22.12.2005, 18:51
  4. Formularfelder-Daten per EMail senden
    Von subi im Forum HTML & CSS Forum
    Antworten: 7
    Letzter Beitrag: 02.08.2004, 16:34
  5. outlook: problem beim senden
    Von |o|o im Forum HTML & CSS Forum
    Antworten: 13
    Letzter Beitrag: 27.07.2004, 08:51

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •