Formulardaten übergeben

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Formulardaten übergeben

    Hi zusammen,

    Folgender Code:

    Quellcode

    1. echo "<form name=\"form\">";
    2. echo "<select name=\"form\" onChange=\"self.location.href='getcountrys.php?country='+this.value\">";
    3. for($i=0; $i < $count; $i++) {
    4. echo "<option value=\"".$result[$i]->ISOCountryCode."\">".$result[$i]->CountryCode."</option>";
    5. }
    6. // echo "<option selected value=\"".$_GET['country']."\">".$haha."</option>";
    7. echo "</select>";
    8. echo "</form>";
    Alles anzeigen


    Soweit so gut :) Ich bekomme dann auch die Variable "country" richtig übergeben. Nur springt er mir dann in der Optionbox eben auf das erste Element zurück, und genau das soll nicht passieren, deshalb arbeite ich mir option selected value - hier bräuchte ich nun aber wieder den Wert CountryCode und nicht ISOCountryCode .... und genau da happert es, wie kann ich bei der Auswahl den CountryCode mit übergeben um ihn danach wieder anzuzeigen?

    Ich weiß - is doof beschrieben, hoffentlich einigermaßen verständlich.

    Grüße,
    Matthias
    Das Leben ist binär - du bist eine 1, oder eine 0
  • Hallo, zeig mal deine JS(?) datei, was passiert bei onchange? Was ist $count, ich verstehe dein Problem nicht ganz.

    Den Inhalt von Select-Boxen übergibt man anders....


    Quellcode

    1. form.options[form.selectedIndex].value


    Dessweiteren hast du 2x den namen="form" vergeben, das ist nicht gut :)

    so long
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, der letzte Netzknoten kommerzialisiert, die letzte Newsgroup moderiert wird, werdet Ihr merken, dass man mit Geld allein nicht programmieren kann.
  • Hallo,

    wie JFoX schon geschrieben hat, solltest Du eindeutige Namen verwenden. Zum Problem

    versuch's mal so:

    Quellcode

    1. echo "<select name=\"form\" onChange=\"self.location.href='getcountrys.php?countryiso='+encodeURI(this.value)&country='+encodeURI(this.text)\">";



    Sollte das nicht gehen, dann evtl. so:

    Quellcode

    1. echo "<select name=\"form\" onChange=\"self.location.href='getcountrys.php?countryiso='+encodeURI(this.options[this.selectedIndex].value)&country='+encodeURI(this.options[this.selectedIndex].text)\">";
    We raise hopes, here ... until they're old enough to fend for themselves.
    - Mike Callahan
  • Erstmal ist da ein wesentlicher Fehler in der Logik deines HTML-Codes. Warum hat das form-Tag genau den gleichen Namen, wie dein select-Tag? Soweit vielleicht gar nicht das Problem, hier aber durchaus ungünstig, weil der Name ja bei der Verarbeitung mit PHP eine große Rolle spielt. Folgend mal ein Schnippsel, wie ich das lösen würde, zurückgegriffen auf dein Beispiel. Dabei verwende ich eine verkürzte Form der if-Struktur, die gerade bei solchen Strings zu Einsatz kommt.

    Quellcode

    1. echo "<form name=\"form\" method="get">";
    2. echo "<select name=\"country\" onChange=\"self.location.href='getcountrys.php?country='+this.value\">";
    3. for($i=0; $i < $count; $i++) {
    4. echo "<option".(($result[$i]->ISOCountryCode == $_GET['country']) ? (" selected") : (""))." value=\"".$result[$i]->ISOCountryCode."\">".$result[$i]->CountryCode."</option>";
    5. }
    6. echo "</select>";
    7. echo "</form>";