Martin: Kann IE5 keine Daten, die an URL hängen, interpretieren???

Beitrag lesen

Hallo Mathias,
vielen Dank für Deine ausführliche Antwort!!

ich möchte Daten aus einem Formular auslesen und per submit an die URL anhängen lassen, damit sie dem Folgedokument zur Verfügung stehen. Diese werden dort benötigt.

Fragst du selbige GET-Parameter serverseitig ab (CGI) oder nutzt du JavaScript (wie bspw. in http://forum.de.selfhtml.org/archiv/2002/10/26395/#m144124)?

Ich nutze ausschließlich JavaScript, da Server-seitig überhaupt nichts passieren soll (so die Anforderungen).

Dies funktioniert auch im IE6 und Mozilla1.1 und somit wohl auch im Netscape ab der Version 6.

Was funktioniert denn nicht im IE5? Zeige uns doch bitte mal dein Formular und erläutere, was du genau vorhast und was schiefläuft.

Also: Erst mal noch eine Erläuterung:
Ich habe eine HTML-Seite mit einem Formular mit Eingabefeldern. Diese werden vom Benutzer mit Eingaben gefüllt. Auf den Vorgängerseiten, wo das nur mit "GET" bzw. action="folgeseite.htm" gelöst ist, funktioniert das auch wunderbar.
Für die jetzige Seite habe ich allerdings eine Seite, auf der nur eine Radiogroup im Formular steht, aus der eine Variante ausgewählt werden soll. In versteckten Feldern stehen die Werte von den Vorgängerseiten, die sich je nach Auswahl des Radio`s noch ändern.
Per submit sollen nun diese veränderten Werte an die URL gehängt werden.

Um zu überprüfen, ob überhaupt ein Radio ausgewählt wurde, habe ich folgende Funktion an das action-Attribut des Formulars angehängt:

<form name="schritt4" method="GET" target="_self" onSubmit=""
  action="javascript:getURL()">

Die Funktion getURL() soll überprüfen, ob ein RadioButton ausgewählt wurde, indem überprüft wird, ob in das versteckte Feld URL bereits ein Eintrag vorgenommen wurde.
Die Funktion getURL() ist wie folgt aufgebaut:

function getURL()
  {
    if(document.schritt4.URL.value != "")
    {
      self.location.href=document.schritt4.URL.value;
    }
    else { alert("Bitte treffen Sie eine Auswahl"); }
  }

Das Feld URL ist ein im Formular enthaltenes verstecktes Feld, in das die URL mitsamt Übergabeparametern gespeichert wird, wie es die folgende Funktion machen soll:
Anmerkung: Diese Funktion ist in der Funktion zu den jeweiligen Radio-Buttons realisiert, da ja unterschiedliche Werte pro Radiobutton errechnet werden und auf die Folgeseite übergeben werden sollen.

(...)
//setze Sprungadresse
var passed = "../shared/passed/schritt5.htm"; //hier wird das Sprungziel für den bestandenen Test definiert
var failed = "../shared/failed/schritt5.htm";
var para = "?AV="+AV+"&AN="+AN+"&qpmax="+qpmax+"&Qpmax="+Qpmax+"&qP="+qP+"&QTW="+QTW+"&A="+A+"&V="+V+"&qH="+qH+"&Anl="+Anl+"&QH="+QH+"&ep="+ep;
//hier werden die einzelnen Variablen als String-Teil gespeichert

if (qP < Qpmax)
{
   document.schritt4.URL.value = passed+para; //hier wird die Zieladresse aus Zieldokument und angehängten Parametern bestimmt
}
else
{
   document.schritt4.URL.value = failed+para;
}

erneut meine Frage:

Kann der IE5 noch keine aus Webadresse und Daten zusammengesetzte URL lesen oder liegt es evtl. an meinem Rechner?

Doch und nein, wahrscheinlich nicht. Der Internet Explorer 5 unterstützt GET-Parameter problemlos, schon Mosaic tut dies AFAIK. Der Browser formuliert jedoch meist nur eine Anfrage mit den Parametern, meist liest man diese Parameter dann über ein serverseitiges Programm/Skript aus. Insofern interpretiert *kein* Browser die GET-Parameter, wenn der Browser die Anfrage nicht selbst formuliert (bei einem GET-Formular), von JavaScript natürlich angesehen.

d.h. ich muss eine andere Lösung finden? Wie könnte ich sowas denn dann realisieren?

Die URL sieht ungefähr folgendermaßen aus:
www.meineseite.de?var1=10&var2=20&var3=30

Genau, da fehlt nur ein Strich zwischen Domainname und Query String (beginnend mit "?"), aber dein Formular mit action="http://www.meineseite.de"  und method="get" dürfte dies automatisch handhaben, beziehungsweise der Browser sollte es erkennen.

Was meinst Du mit "Strich"? Das ist doch genau die Adresszeile, die vom IE dann angezeigt wird.

Danke nochmal und viele Grüße
   Martin