Zodiac: Index von <form> ermitteln und übergeben

Hallo Leute,

ich habe folgendes Problem:

Auf meiner Site sollen über 2 miteinander verbundene Dropdownmenüs Studienfächer ausgewählt werden können, z.B. wähle ich im ersten Dropdownmenü "Sprachen" erscheinen im 2. Dropdownmenü nur Kurse zum Thema "Sprachen". Wähle ich im ersten "Informatik" erscheinen im 2. nur passende Kurse etc.pp. Die Dropdownmenüs sind als <form>-elemente realisiert, die jeweils passend zur Auswahl im ersten Dropdownmenü angezeigt werden. Menüs,, die nicht zur Auswahl stehen, werden nicht angezeigt. Das funktioniert soweit. Sobald man im zweiten Dropdownmenü sein Studienfach ausgewählt hat, kann man über einen submit-Button die dazugehörige Seite aufrufen. Auch das klappt, aber nur insoweit als das ich nur das erste <form>- element auswerten kann, da document.forms[...] über den Index angesprochen werden:

<script type="text/javascript">  
  
var url = 'http://www.xxx.de';  
  
function goTo()  
  
{  
var dlink = document.forms[0].dlink.value;  
window.location = url+'/'+dlink;  
  
return false;  
  
}  
</script>

Was mir fehlt ist eine Suchfunktion, die mir den Index der benutzten <form> in eine Variable schreibt, so das ich diese hier:

var dlink = document.forms[VARIABLE].dlink.value;  
window.location = url+'/'+dlink;

einsetzen kann.

Hat jemand einen Rat für mich?

Gruß
Zodiac

  1. Hat jemand einen Rat für mich?

    Schau dir mal die Quickbar in Selfhtml an, da hast du genau das, was du machen willst. Vielleicht hilft dir das bei der Umsetzung und du kannst dein eigenes Formular sogar vereinfachen.

    http://de.selfhtml.org/navigation/quickbar/index.htm

    1. Hat jemand einen Rat für mich?

      Schau dir mal die Quickbar in Selfhtml an, da hast du genau das, was du machen willst. Vielleicht hilft dir das bei der Umsetzung und du kannst dein eigenes Formular sogar vereinfachen.

      http://de.selfhtml.org/navigation/quickbar/index.htm

      Danke, die Idee hatte ich bereits, doch um die Auswahl noch zu überprüfen und gegebenenfalls zu korrigieren, brauche ich einen Aufruf über den Submit-Button. Die Quickbar-Lösung leitet ja sofort weiter :(

      Gruß
      Zodiac

      1. Die Quickbar-Lösung leitet ja sofort weiter :(

        Dann nimmst du einfach das onChange raus und schon wird nichts mehr automatisch weitergeleitet.

        1. Die Quickbar-Lösung leitet ja sofort weiter :(

          Dann nimmst du einfach das onChange raus und schon wird nichts mehr automatisch weitergeleitet.

          Hallo multi,

          ungefähr so habe ich es auch gebaut, nur das ich den anzusteuernden Link aus versch. Variablen zusammen setzen muss, deswegen die Funktion goTo. Jetzt habe ich ungefähr 13 <form>-elemente, die ich mit document.forms[0] ja nicht gezielt (sondern in diesem Fall nur das erste) auslesen kann.

          Gruß
          Zodiac

          1. Jetzt habe ich ungefähr 13 <form>-elemente,

            Ist das überhaupt nötig oder liese sich das nicht mit einem <form> auf umsetzen?
            Nein, ich stelle nicht dein Konzept in Frage, ich weiss nur aus Erfahrung, dass man bei solchen Dingen manchmal betriebsblind sein kann ;)

            1. Jetzt habe ich ungefähr 13 <form>-elemente,

              Ist das überhaupt nötig oder liese sich das nicht mit einem <form> auf umsetzen?
              Nein, ich stelle nicht dein Konzept in Frage, ich weiss nur aus Erfahrung, dass man bei solchen Dingen manchmal betriebsblind sein kann ;)

              Das Konzept läßt sich sicher wesentlich vereinfachen, nur bin ich leider absoluter JavaScript-Noob und freue mich so schon wie Bolle, das es überhaupt funktioniert :)

              Viele Grüße
              Zodiac

  2. Hat jemand einen Rat für mich?

    Wie rufst du die Funktion goto auf?

    Struppi.

    1. Hat jemand einen Rat für mich?

      Wie rufst du die Funktion goto auf?

      Struppi.

      Über:

      <form name="Sprache" action="" method="get" onsubmit="return goTo()">  
      <select name="2" class="select2" id="dlink">  
      <option value="notselected">W&auml;hlen Sie Ihr Probestudium</option>  
      <option value="1.php">Englisch</option>  
      <option value="2.php">Franz&ouml;sisch</option>  
      <option value="3.php">Italienisch</option>  
      <input type="submit" name="Submit" value="Abschicken" />
      
      1. Über:

        <form name="Sprache" action="" method="get" onsubmit="return goTo()">

        <select name="2" class="select2" id="dlink">
        <option value="notselected">W&auml;hlen Sie Ihr Probestudium</option>
        <option value="1.php">Englisch</option>
        <option value="2.php">Franz&ouml;sisch</option>
        <option value="3.php">Italienisch</option>
        <input type="submit" name="Submit" value="Abschicken" />

          
        Das hatte ich mir gedacht, d.h. du kannst auch völlig anders vorgehen:  
          
        `<form name="Sprache" action="" method="get" onsubmit="return goTo(this)">`{:.language-html}  
        So übergibst du der Funktion, direkt die referenz auf das Formular.  
          
        Struppi.
        
        1. Über:

          <form name="Sprache" action="" method="get" onsubmit="return goTo()">

          <select name="2" class="select2" id="dlink">
          <option value="notselected">W&auml;hlen Sie Ihr Probestudium</option>
          <option value="1.php">Englisch</option>
          <option value="2.php">Franz&ouml;sisch</option>
          <option value="3.php">Italienisch</option>
          <input type="submit" name="Submit" value="Abschicken" />

          
          >   
          > Das hatte ich mir gedacht, d.h. du kannst auch völlig anders vorgehen:  
          >   
          > `<form name="Sprache" action="" method="get" onsubmit="return goTo(this)">`{:.language-html}  
          > So übergibst du der Funktion, direkt die referenz auf das Formular.  
          >   
          > Struppi.  
            
          Das ist schick, nur wie gestalte ich die Funktion  
            
          ~~~javascript
          <script type="text/javascript">  
            
          var url = 'http://www.xxx.de';  
            
          function goTo()  
            
          {  
          var dlink = document.forms[0].dlink.value;  
          window.location = url+'/'+dlink;  
            
          return false;  
            
          }  
          </script>
          

          so das diese Referenz nach document.forms[...].dlink.value übernommen wird?

          Danke
          Zodiac

          1. Struppi.

            Bitte zitiere nur das worauf sich deine Antowrt bezieht, Danke.

            Das ist schick, nur wie gestalte ich die Funktion

            function goTo(f) {  
            var dlink = f.dlink.value;  
            window.location.href = url+'/'+dlink;  
            return false;  
            } 
            

            Struppi.

            1. Struppi.

              Bitte zitiere nur das worauf sich deine Antowrt bezieht, Danke.

              Das ist schick, nur wie gestalte ich die Funktion

              function goTo(f) {

              var dlink = f.dlink.value;
              window.location.href = url+'/'+dlink;
              return false;
              }

              
              >   
              > Struppi.  
                
              Super, Besten Dank Struppi, jetzt gehts!  
                
              Viele Grüße  
              Zodiac