Eurokicker
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 04.01.2005, 20:04   #1
TP-Member
 
Registriert seit: Oct 2002
Ort: Munich
Ullamo macht alles soweit korrekt

Formular mit mehr als 120 <inputs>


Hallo,

ich arbeite gerade an einer relativ großen Formular-Anwendung, bei der der User die Anzahl der ihm angezeigten, und auszufüllendenen Zeilen selbst festlegen kann.

Bis zu einer Zahl von ca. 120 Textfeldern funktioniert alles reibungslos....

Sind es jedoch mehr <input> funktioniert der <submit>-Button nicht mehr, d.h. der User wird nicht weitergeleitet...

An was könnte das liegen? Gibt's Abhilfe?

Eine Teilung des Formulares in mehrere Teile kommt leider nicht in Frage....

Vielen Dank schon im Voraus!!!
Ullamo ist offline   Mit Zitat antworten


Alt 04.01.2005, 20:11   #2
Guest
 
Registriert seit: Aug 2002
Strogij hilft, wo's gehtStrogij hilft, wo's geht
Puh, weiß nicht genau, hängt ja vom Browser ab, wenn der Button nicht funktioniert (wie definierst du "nicht funktionieren" genau?).
Strogij ist offline   Mit Zitat antworten
Alt 04.01.2005, 20:19   #3
TP-Member
 
Registriert seit: Oct 2002
Ort: Munich
Ullamo macht alles soweit korrekt
bei formularen mit bis zu 120 Feldern leitet mich der Klick auf den Button an die angegebene <action="test.php"> weiter....

Sind es mehr Felder erfolgt eben diese zur Auswertung nötige Weiterleitung nicht....

liegt also definitiv an der Anzahl der Felder...

Funktioniert sowohl in IE6 und IE5 als auch in FB nicht...
Ullamo ist offline   Mit Zitat antworten
Alt 04.01.2005, 20:23   #4
Guest
 
Registriert seit: Aug 2002
Strogij hilft, wo's gehtStrogij hilft, wo's geht
Ich kann mir zwar nicht vorstellen, mehr als 120 Felder manuell auszufüllen, aber du wirst wohl Sessions und mehrere Seiten verwenden müssen.
Strogij ist offline   Mit Zitat antworten
Alt 04.01.2005, 20:33   #5
TP-Specialist
 
Benutzerbild von Dennis The Menace
 
Registriert seit: Nov 2004
Ort: Ich komme aus dem Zauberwald
Dennis The Menace bringt sich richtig einDennis The Menace bringt sich richtig ein
Ich hab mal Testweise ein Formular mit 1000 input Feldern erstellt, dass lässt sich mit jedem meiner Browser (angefangen von Opera, aufgehört mit lynx) versenden!

Du kannst ja mal deine Datei hochladen - ansonsten würde ich aufjeden Fall Strogij Rat beherzigen.

Kein User wird 120 FormFelder ausfüllen! Erst recht nicht, wenn die alle auf eienr Seite sind!
__________________
Zwei Dinge sind Unbestreitbar:
  • In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
  • Die Erde ist eine Scheibe!
Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!
Dennis The Menace ist offline   Mit Zitat antworten
Alt 05.01.2005, 00:18   #6
TP-Member
 
Registriert seit: Oct 2002
Ort: Munich
Ullamo macht alles soweit korrekt
Also mit Firefox geht's jetzt....

aber IE6 spinnt weiter und verweigert ab $f=15 die Übernahme der Daten....

HILFE!


Zitat:
echo("<table>");
echo("<form action='formular_formular_speichern.php'>");
echo("<tr><td>Pos</td><td>Menge</td><td>Einheit</td><td>Art.-Nr.</td><td>Bezeichnung</td><td>Einzelpreis</td><td>Gesamtpreis</td></tr>");

for($i=1; $i <=$f; $i++){

echo("<tr><td><input size='3' type='text' name='pos".$i."' value='".$i."'></td><td><input type='text' name='menge".$i."' size='7'></td><td><input type='text' name='einheit".$i."' size='7'></td><td><input type='text' name='artnr".$i."' size='30'></td><td><input type='text' name='bezeichnung".$i."' size='30'></td><td><input type='text' name='einzelpreis".$i."' size='5'></td><td><input type='text' name='gesamtpreis".$i."' size='5'></td></tr>");

}
echo("<tr><td colspan='7'><input type='submit' value='speichern'></td></tr></table></form>");


}
Ullamo ist offline   Mit Zitat antworten
Alt 05.01.2005, 00:59   #7
TP-Specialist
 
Benutzerbild von Dennis The Menace
 
Registriert seit: Nov 2004
Ort: Ich komme aus dem Zauberwald
Dennis The Menace bringt sich richtig einDennis The Menace bringt sich richtig ein
Gut, das ist eine Verkettung unglücklicher Ereignisse, aber dazu später.

Zunächst möchte ich dich einfach mal darauf hinweisen, dass echo KEINE FUNKTION IST. Daher sind die Klammern dahinter sinnlose Tipparbeit, nervig zu lesen und absolut verwirrend, da bei einem fremden Leser der Eindruck erweckt wird, echo sei eine Funktion!

Dann sollte man sich eventuell überlegen, ob es wirklich von Nöten ist, dass Sprachkonstrukt echo dreimal hintereinander aufzurufen. Liegt natürlich bei dir, wenn du gerne viel tippst und viel Speicherplatz frei hast.

Dann kannst du nämlich gleich =>
PHP-Code:
echo "H";
echo 
"a";
echo 
"l";
echo 
"l";
echo 
"o";
echo 
" ";
echo 
"W";
echo 
"e";
echo 
"l";
echo 
"t"
verwenden!

Naja, aber nun zum eigentlichen Problem
Du gibst im <form ...> leider keine Method an. Es gibt zwei davon, POST und GET.
Eine davon ist Effektiv, die andere sau langsam, unsicher und hat eigentlich keine Daseinsberechtigung.

Dumm, wie einige Browser sind, benutzen als als Standart-method GET. Get war das
Teil ohne Daseinsberechtigung - nur zu Erinnerung

POST macht folgendes. Du gibst im form ja action='formular_formular_speichern.php' an. Das heißt, dass nach dem betätigen des Submit-Buttons die Seite formular_Formular_speichern.php aufgerufen wird. In der Browseradressleiste wird also http://deineDomain.de/formular_Formular_speichern.php aufgerufen.

Die Daten der ganzen Formularfelder werden (für den Frontend-Anwender nicht sichtbar) im hintergrund zum Server "geposted". Also, ein Hoch auf method="post".

So, wie löst method="get" das übergeben der Daten?
Bei method="get" werden die Daten leider nicht im Hintergrund schnell und effektiv übergeben, sondern im Link, der aufgerufen wird. Bei nur einem einzigen form-input Feld sähe das dann wie folgt aus:
http://deineDomain.de/formular_formular_speichern.php?name_Des_form_input_feldes=inhalt_des_form_input_feldes

Ist nicht all zu wild. Bei 10 Inputfeldern sieht das (unter der Verwendung von GET) schon wie folgt aus:
http://deineDomain.de/formular_formular_speichern.php?name_Des_form_input_feldes=inhalt_des_form_input_feldes&name_Des_form_input_feldes1=inhalt_des_form_input_feldes&name_Des_form_input_feldes2=inhalt_des_form_input_feldes&name_Des_form_input_feldes3=inhalt_des_form_input_feldes&name_Des_form_input_feldes1=inhalt_des_form_input_feldes&name_Des_form_input_feldes4=inhalt_des_form_input_feldes&name_Des_form_input_feldes5=inhalt_des_form_input_feldes&name_Des_form_input_feldes6=inhalt_des_form_input_feldes&name_Des_form_input_feldes1=inhalt_des_form_input_feldes&name_Des_form_input_feldes8=inhalt_des_form_input_feldes&name_Des_form_input_feldes9=inhalt_des_form_input_feldes

Tja, dass ist in der Tat schon etwas wilder. Und - jetzt stell dir das ganze mal for, wenn du 130 input Felder im Form hast.

Nicht so dolle, oder?

Es werden nämlich unterschiedliche Fehler auftreten können.
  • Der Browser schafft es einfach nicht mehr, jene URL zu verarbeiten und macht einfach gar nichts. (Internetexplorer), andere Browser packen das Spielend (opera/firefox) [weil sie gut sind, oder nur 1024 Zeichen der URL übergeben], einige (mir fällt jetzt keiner ein), würden eine Fehlermeldung ausgeben.
  • Der Server könnte ein Fehler ausspucken: Request-URI Too Large

    The requested URL's length exceeds the capacity limit for this server.

    Jetzt liegt das Problem also nicht mehr Clientseitig beim User, sondern beim Server.
  • Können noch weitere, ungewollte Sachen auftreten.

Daher musst du im method="post" im <form ... > explizit mit angeben:
<form action='formular_formular_speichern.php' method="post">

Und nun, oh Gott sehe, dürften weder Browser noch Server meckern. Wobei der Browser auf einem alten Rechner damit schonmal nen paar Sekunden rechnen müsste, und ein Server kann ein limit über die maximale größe der an post übergebenen Werte haben. In der Regel sind das 2 MB -> also mehr als ausreichend für dein Formular!
^
Des weiteren ist zu empfehlen, in html keine Single Quotes (') zu benutzen, sondern stehts double quotes ("). Z.b. bei <form action="ziel.php" method="post">

Der Vollständigkeit halber hier mal das komplett abgeänderte "lauffähige" Beispiel:
PHP-Code:
echo <<<ausgabe
<table>
<form action="formular_formular_speichern.php" method="post">
<tr><td>Pos</td><td>Menge</td><td>Einheit</td><td>Art.-Nr.</td><td>Bezeichnung</td><td>Einzelpreis</td><td>Gesamtpreis</td></tr>
ausgabe;


for(
$i=1$i <= $f$i++)
echo <<<naja
<tr>
 <td><input size="3" type="text" name="pos$i" value="$i"></td>
 <td><input type="text" name="menge$i" size="7"></td>
 <td><input type="text" name="einheit$i" size="7"></td>
 <td><input type="text" name="artnr$i" size="30"></td>
 <td><input type="text" name="bezeichnung$i" size="30"></td>
 <td><input type="text" name="einzelpreis$i" size="5"></td>
 <td><input type="text" name="gesamtpreis$i" size="5"></td></tr>
naja;


echo 
'<tr><td colspan="7"><input type="submit" value="speichern"></td></tr></table></form>'
Wobei dieses sehr uneffektiv von dir gelöst wurde. Da du als Namen immer menge$i, einheit$i usw. verwendest. Viel besser und effektiver wäre es da, die Daten direkt in einem Array zusammenzufassen. Dann hast du später mehr Möglichkeiten, jene Daten effektiver abzufangen und weiterzuverarbeiten.
__________________
Zwei Dinge sind Unbestreitbar:
  • In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
  • Die Erde ist eine Scheibe!
Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!

Geändert von Dennis The Menace (05.01.2005 um 01:15 Uhr).
Dennis The Menace ist offline   Mit Zitat antworten
Alt 05.01.2005, 02:08   #8
TP-Member
 
Registriert seit: Dec 2004
Ort: Schweiz - Luzern
gugus macht alles soweit korrekt
@Dennis The Menace Besser kann man es nicht mehr erklären. *lach* *grins* *ironie ist kuul* Hab gleich mal für dich gevotet Dennis - sorry für OT!
__________________

<?php
/* My web pages */
echo "Rettet den Wald
Esst mehr Biber";
?>
gugus ist offline   Mit Zitat antworten
Alt 05.01.2005, 09:37   #9
Guest
 
Registriert seit: Aug 2002
Strogij hilft, wo's gehtStrogij hilft, wo's geht
Er wird für die Beiträge von der gewissen Regierung "geschmiert", also wunder' dich nicht!
Strogij ist offline   Mit Zitat antworten
Alt 05.01.2005, 17:00   #10
TP-Member
 
Registriert seit: Oct 2002
Ort: Munich
Ullamo macht alles soweit korrekt
Vielen, vielen Dank Dennis,

WELTKLASSE Hilfe....
Ullamo ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Formular mit mehr als 120 <inputs> Formular mit mehr als 120 <inputs>
« Verzeichnis indizieren | strich zwischen jeden eintrag.... »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Schrift als Link.. mit Effekt FRAGEMANN Flash 1 14.12.2004 17:40
IE zerreißt Seite mit Formular tribun HTML Puristen 5 23.09.2003 10:07
Formular mit grafischem Absende-Button funzt nicht Thomas Traum-Dynamik 13 18.09.2003 19:31
Erstmals mehr als 40 Prozent online Flixxtoras Einfach so ... 0 07.07.2001 12:04


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:55 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67