Formular versenden klappt nicht wie beabsichtigt
Enrico
- php
0 dedlfix
0 JeSchnell0 Enrico0 fastix®0 Dankesehr :-) Enrico
Hallo,
ich knabbere derzeit am Problem, dass das Versenden eines Formulars zwar funktioniert, aber leider nicht wie beabsichtigt.
Ich habe ein Formular, ...
<form name="Eintragen" action="Layout.php?Seite=Gaestebuch&Aktion=Validierung" method="get">
...das ich per Javascript verschicke:
<div id="OK" onclick="Eintragen.submit();"></div>
Die Seite "Layout.php" wird zwar aufgerufen, aber anstelle meiner Angaben "Seite" und "Aktion" werden "nur" die Eingaben des Formulars angehängt (was ja schon mal gut ist):
http://localhost:8080/Dateien/Layout.php?Name=rico&eMail=enricolell%40web.de&Homepage=&Nachricht=test
Was muß ich angeben, um sowohl meine beabsichtigten Angaben zur "Seite" und "Aktion", als auch die automatisch angehängten Eingaben unter einen Hut zu bekommen?
Vielen Dank und Gruß
Enrico
Hi!
Was muß ich angeben, um sowohl meine beabsichtigten Angaben zur "Seite" und "Aktion", als auch die automatisch angehängten Eingaben unter einen Hut zu bekommen?
Geht meines Wissens nach nicht mit GET. Bei POST lässt der Browser die URL im action-Attribut in Ruhe, bei GET schreibt er den Querystring neu. Wenn du die Werte übertragen haben möchtest, kannst du sie in Hidden-Felder schreiben.
Lo!
hi,
Was muß ich angeben, um sowohl meine beabsichtigten Angaben zur "Seite" und "Aktion", als auch die automatisch angehängten Eingaben unter einen Hut zu bekommen?
deklariere die GET-Parameter doch einfach als Teil des Formulars anstatt als Teil der URI:
<input type="hidden" name="Seite" value="Gaestebuch">
lg JeSchnell
PS: Bei Übertragungen via GET gibt es z.B. im Internet Explorer oder bei Apache (standardmäßig 8192 Byte) Längenlimits. Verwende also am Besten bei Formularen, bei denen es zu langen Eingaben kommen kann, POST als Methode. Dann brauchst du erstens den Parameter "Aktion" nicht, da man gleich den Wert der Servervariable REQUEST_METHOD (in PHP) dazu verwenden kann; zweitens kommt es erst gar nicht zum Problem mit den überschriebenen GET-Parametern, weil das Formular ja eine andere Methode benutzt.
Nochmals Hallo,
meine Überlegung, die Formularfelder manuell anzuhängen, hat leider auch nicht geklappt, d.h. meine Variablen "Seite" und "Aktion" werden nachwievor von den Formularvariablen samt deren Werte überschrieben.
Gruß
Enrico
Moin!
<form name="Eintragen" action="Layout.php?Seite=Gaestebuch&Aktion=Validierung" method="get">
<input name="foo" value="bar">
Um die Daten welche Du der URL angehangen hast zu erhalten bleibt Dir nur die Möglichkeiten:
1. Alle Deine Benutzer mit einem Browser zu versorgen, der dies so vornimmt. (doppelminusgut)
oder:
2. Du erzeugst versteckte Formularfelder: (gut)
<form name="Eintragen" action="Layout.php" method="get">
<input type="hidden" name="Seite" value="Gaestebuch">
<input type="hidden" name="Aktion" value="Validierung">
oder:
3. Du verwendest method="POST". Dann hast Du die Werte im GET- und POST-Hash, respekive in $_REQUEST. (gut)
oder 4.
Du schreibst Dein Javascript so um, dass es alle Name/Werte-Paare an die URL anhängt und statt das Formular abzusenden einen Request erzeugt. Denke daran, die Werte zu codieren. (minusgut)
location.href="Layout.php?Seite=Gaestebuch&Aktion=Validierung&Name=rico&eMail=enricolell%40web.de&Homepage=&Nachricht=test"
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix
Danke an euch allen, die mir hier geholfen haben :-)
Die bloße Umstellung von "$_GET" auf "$_POST" hat mein Problem gelöst, jetzt klappt es einwandfrei :-)
Gruß
Enrico