Polohatzer: Werte ausgeben funktioniert nicht richtig.

Hallo zusammen!

Also ich habe folgenden Code:

  
<div style="float:left">  
<form name="landauswahl" method="post" action="?land=<?php print "$land";?>">  
	<select name="land" onChange="this.form.submit();" id="bezirksauswahl">  
	<option>Land wählen</option>  
	<option value="Deutschland">Deutschland</option>  
	<option value="Schweiz">Schweiz</option>  
	<option value="Österreich">Österreich</option>  
	</select>  
	</form>  
</div>  

Wenn ich Deutschland auswähle,
kommt in der Adresszeile --> domain.xx/?land=

Wenn ich danach Schweiz auswähle,
kommt in der Adressezeile --> domain.xx/?land=Deutschland

Wenn ich danach Österreich auswähle,
kommt in der Adressezeile --> domain.xx/?land=Schweiz

Wo liegt da bitte der Fehler?
Hab doch den Code richtig, oder?

Beste Grüsse aus Wien,
Mario

  1. Hi,

    Wenn ich Deutschland auswähle,
    kommt in der Adresszeile --> domain.xx/?land=

    Wenn ich danach Schweiz auswähle,
    kommt in der Adressezeile --> domain.xx/?land=Deutschland

    Wenn ich danach Österreich auswähle,
    kommt in der Adressezeile --> domain.xx/?land=Schweiz

    Wo liegt da bitte der Fehler?

    Im action-Attribut des Formulars.

    Hab doch den Code richtig, oder?

    Du solltest noch einen Button zum Absenden des Formulars einbauen, weil das sonst ohne JavaScript nicht nutzbar ist.
    Wenn JavaScript verfügbar ist, kann du den Button darüber wieder ausblenden, wenn er dich stört.

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
  2. Wo liegt da bitte der Fehler?
    Hab doch den Code richtig, oder?

    das lässt sich ohen den Zweck des ganzen zu kennen nicht sagen. Beschreibe also bitte erst einmal deine zugrunde liegende Absicht.

  3. <form name="landauswahl" method="post" action="?land=<?php print "$land";?>">

    Die Action hat immer das Land welches du zuletzt angesprochen hast, aber nicht das welches du ansprechen willst.
    Nach dem onchange der Selectbox müsstest du die Action manipulieren um das richtige Land in der URL mit zu schicken.
    also:
    document.landauswahl.action = "?land=" + documentg.getElementById("bezirksauswahl").value; <-- Action manipulieren
    document.landauswahl.submit(); <-- Formular abschicken

    Desweiteren möchte ich dich darauf hinweisen das bei dem Action Attribut immer eine Datei oder URL stehen sollte. Die Browser unterstützen zwar ein leeres Action Attribut, dies ist aber nirgends als Standard definiert. Könnte sein das der IE10 das also nicht mehr unterstützt.

    Gruß
    manipulierender
    T-Rex

    1. @@T-Rex:

      nuqneH

      Die Action hat immer das Land welches du zuletzt angesprochen hast, aber nicht das welches du ansprechen willst.
      Nach dem onchange der Selectbox müsstest du die Action manipulieren um das richtige Land in der URL mit zu schicken.

      ?? Dadurch, dass das 'select' @name="land" hat, wird doch @value der jeweiligen 'option' verwendet. Fragt sich nur, was "?land=…" überhaupt in @action bezwecken soll.

      document.landauswahl.action = "?land=" + documentg.getElementById("bezirksauswahl").value; <-- Action manipulieren

      Warum sollte man dies mit JavaScript tun? Genau das tun Browser auch ohne.

      Qapla'

      --
      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
      (Mark Twain)
      1. Warum sollte man dies mit JavaScript tun? Genau das tun Browser auch ohne.

        Ja richtig, dass ist aber nicht die Frage gewesen.
        Wenn man das Formular auf method="get" umstellt hat man freilich den Effekt, dass das Land in der url steht. Andere Felder jedoch auch. Das ist vielleicht nicht gewünscht? Das kann ich jedoch nicht beantworten. Dass muss der Fragesteller selber wissen. Ich habe lediglich auf seine Frage geantwortet.

        Gruß
        Antwort gebender
        T-Rex

    2. Hi!

      Desweiteren möchte ich dich darauf hinweisen das bei dem Action Attribut immer eine Datei oder URL stehen sollte. Die Browser unterstützen zwar ein leeres Action Attribut, dies ist aber nirgends als Standard definiert.

      HTML erlaubt es, dass Links auch relativ zur Basis-URL des Dokuments (oder einer eigens spezifizierten) angegeben werden können. Ein leeres Attribut entspricht der Basis-URL ohne weitere Änderungen.

      Könnte sein das der IE10 das also nicht mehr unterstützt.

      Was hätte er denn davon außer großem weltweiten Ärger? Nichts. Denn der Mechanismus zum Ergänzen relativer Angaben zu vollständigen URLs muss auch für alle anderen Arten von Links verfügbar sein. Warum ausgerechnet dort, wo auch relative Angaben stehen können, sollte er nicht mehr funktionieren?

      Lo!

      1. Es geht nicht darum das dort relative Links stehen sondern das dort "nichts" steht.
        Eventuell ging es in dem Artikel auch um das weglassen des Action Attributes. Das kommt dem aber irgendwie gleich...hmmm...

        Gruß
        zweifelnder
        T-Rex

        1. Hallo,

          Es geht nicht darum das dort relative Links stehen sondern das dort "nichts" steht.

          ein klar umrissenes "nichts" ist im URL-Kontext sozusagen die relative URL der aktuellen Ressource.

          Eventuell ging es in dem Artikel auch um das weglassen des Action Attributes. Das kommt dem aber irgendwie gleich...

          Nein, nicht ganz. Das action-Attribut ist tatsächlich vorgeschrieben, aber es darf leer sein und somit wieder auf dieselbe Ressource verweisen (Affenformular).

          Ciao,
           Martin

          --
          Niemand lebt allein von seinen Träumen.
          Aber wer träumt, lebt noch.
          Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
          1. Hi,

            Es geht nicht darum das dort relative Links stehen sondern das dort "nichts" steht.

            Da stand im Quellcode des Fragers aber gar nicht „nichts“.

            Das action-Attribut ist tatsächlich vorgeschrieben, aber es darf leer sein und somit wieder auf dieselbe Ressource verweisen (Affenformular).

            In HTML5 nicht mehr:
            “The action and formaction content attributes, if specified, must have a value that is a valid non-empty URL potentially surrounded by spaces.”

            “A string is a valid non-empty URL potentially surrounded by spaces if, after stripping leading and trailing whitespace from it, it is a valid non-empty URL.”

            “A string is a valid non-empty URL if it is a valid URL but it is not the empty string.”

            MfG ChrisB

            --
            RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
            1. Hi!

              Das action-Attribut ist tatsächlich vorgeschrieben, aber es darf leer sein und somit wieder auf dieselbe Ressource verweisen (Affenformular).
              In HTML5 nicht mehr:
              “The action and formaction content attributes, if specified, must have a value that is a valid non-empty URL potentially surrounded by spaces.”

              Gut, dann lassen wir es weg und es wird automatisch zum leeren String.

              “A string is a valid non-empty URL potentially surrounded by spaces if, after stripping leading and trailing whitespace from it, it is a valid non-empty URL.”
              “A string is a valid non-empty URL if it is a valid URL but it is not the empty string.”

              Wie definiert sich eigentlich "valid URL"? Das ist mir "ein wenig" zu verklausuliert formuliert. Konkret gefragt: sind relative Angaben bereits valid oder müssen sie immer erst durch den Resolving-Prozess, ehe über ihre Validität entschieden werden kann?

              Lo!

              1. Hi,

                Wie definiert sich eigentlich "valid URL"? Das ist mir "ein wenig" zu verklausuliert formuliert.

                http://www.w3.org/TR/html5/urls.html#valid-url verweist also erstes auf RFC3986, und da wird in Kapitel 5 auf das Resolving relativer Adressen eingegangen.

                Konkret gefragt: sind relative Angaben bereits valid oder müssen sie immer erst durch den Resolving-Prozess, ehe über ihre Validität entschieden werden kann?

                M.E. ersteres - so lange die vorgegebene Syntax für den jeweiligen relativen Teil eingehalten wird.

                MfG ChrisB

                --
                RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
                1. Hi!

                  Konkret gefragt: sind relative Angaben bereits valid oder müssen sie immer erst durch den Resolving-Prozess, ehe über ihre Validität entschieden werden kann?
                  M.E. ersteres - so lange die vorgegebene Syntax für den jeweiligen relativen Teil eingehalten wird.

                  Im Prinzip ist diese Klärung ja auch egal. In HTML4/XHTML1.0 war es zwar ein Pflichtattribut, in HTML5 kann action/formaction jedoch weggelassen werden. Da die Browser nie streng nach DTD parsen, ist es aus praktischen Gesichtspunkten gleich, ob es da und leer ist oder fehlt. In beiden Fällen muss der Browser die Basis-URL des Dokuments als Ziel nehmen.

                  Lo!

  4. @@Polohatzer:

    nuqneH

    <form name="landauswahl" method="post" action="?land=<?php print "$land";?>">

    Wie kommt $land zu seinem Wert?

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
    1. @@Gunnar Bittersmann:

      nuqneH

      <form name="landauswahl" method="post" action="?land=<?php print "$land";?>">
      Wie kommt $land zu seinem Wert?

      Vergiss es, das dürfte sowieso irrelevant sein.

      Wenn du die getroffene Auswahl im URI haben möchtest, warum verwendest du POST?

      Qapla'

      --
      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
      (Mark Twain)
      1. Danke Gunnar!

        So funktioniert es jetzt!

        Hab anstatt method="post" --> method="" eingefügt. ;-)

        1. @@Polohatzer:

          nuqneH

          Hab anstatt method="post" --> method="" eingefügt. ;-)

          Dann kannst du das Attribut gleich ganz weglassen. Oder der Vollständigkeit halber method="GET" schreiben.

          Qapla'

          --
          Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
          (Mark Twain)
  5. Danke schön.

    Ich habe eure Tipps ausprobiert, aber es funktionier leider noch immer nicht.

    Um diese Seite geht es: [Link entfernt]