Mehere surftos für Pulldown menus

Remizz

Mitglied
Hi Leute...

Ich habe leider noch keinen großen Schimmer von Javascript und benötige desshalb eure Hilfe.

Ich hab auf meiner Seite mehrere Pulldownmenus die alle auf einer Seite sind und alle funktionieren sollen. Jetzt habe ich folgendes gemacht:

Code:
    <script language="JavaScript">
  function surfto(form) 
  {
      var myindex=form.select1.selectedIndex
      if (form.select1.options[myindex].value != "0") 
      {
          location=form.select1.options[myindex].value;
      }
  }
  </script>

Dies funktioniert auch wunderbar nur jetzt ist meine Frage wie ich mehrere verschiedene dieser Art benutzen kann. Ich habe bereits versucht einfach das Script zu kopieren und nur das 'select1' umzubenennen. Das sah so aus:

Code:
function surfto(form1) 
  {
      var myindex=form.kategorie.selectedIndex
      if (form.kategorie.options[myindex].value != "0") 
      {
          location=form.kategorie.options[myindex].value;
      }
  }

Diese Variante rief allerdings nur fehler auf das er immer nur die 2te Funktion benutzte. Nun meine Frage wie erreiche ich mein Ziel dass ich mehrere dieser Pulldownmenus auf einer Seite, jedoch mit verschiedenen angaben für 'name' im select-tag haben kann?

Danke im Voraus
MfG
Remizz
 

Tobias Menzel

Erfahrenes Mitglied
Hi, übergib der Funktion einfach das jeweilige Element statt dem gesamten Formular:
PHP:
function surfto(form_element) 
  {
      var myindex=form_element.selectedIndex;
      if (form_element.options[myindex].value != "0") 
      {
          location=form_element.options[myindex].value;
      }
  }

Gruß
 

Remizz

Mitglied
Danke für die schnelle Antwort. Deine Erläuterung scheint mir auch logisch aber wie ist das mit den Elementen? wie muss ich die anpassen?

Kannst du mir ein Beispiel dafür geben wie ich verschiedene Pulldownmenus nacheinander mit verschiedenen Angaben für 'name' machen kann?
 

Tobias Menzel

Erfahrenes Mitglied
... zeig mir bitte erstmal den Code, in dem Du die Funktion aufrufst (und am besten auch das Formular). Das Formularobjekt ist dir ja an dieser Stelle bekannt... nur weiß ich leider nicht, welche Objekte dort genau vorhanden sind, und wie bestimmt wird, auf welches Objekt sich die Funktion beziehen soll.

Gruß
 

Remizz

Mitglied
Das Formular steht im PHP-Code ich hoffe das macht keine Probleme falls doch werde ich es entsprechend abändern.

Die Funktion wird oben in den headtag includet.

Das Forumular:

PHP:
  echo "      <select name=\"kategorie\" size=\"1\" onChange=\"surfto(form_element)\">\n";
  echo "        <option value=\"index.php?section=add\">------------</option>\n";
    
    $sql = "SELECT
                ID,
                Name
            FROM
                alben
            ORDER BY
                Name ASC";
    $result = mysql_query($sql) OR die(mysql_error());
    
    while ($row = mysql_fetch_assoc($result)) {
       
      echo "    <option value=\"index.php?section=add&Kat=".$row['ID']."\"";


      
      if (isset($_GET['Kat'])) {
        
          if ($row['ID'] == $_GET['Kat']) {
          
            echo " selected";
          
          }
      }
      
      echo ">".$row['Name']."</option>";
    }
    
  echo "    </select>\n";

Und direkt danach kommt ein weiteres solches Forumular. Nur wird dort anstatt "kategorie" als name "subkat" benutzt. das muss leider sein da die daten in eine Datenbank sollen.
 

Tobias Menzel

Erfahrenes Mitglied
hmm...
wie ich das sehe, hast Du hier:
PHP:
echo "      <select name=\"kategorie\" size=\"1\" onChange=\"surfto(form_element)\">\n";
vorher ein Formular übergeben...
... würde es funktionieren, wenn Du z.B. schreibst:
PHP:
echo "      <select name=\"kategorie\" size=\"1\" onChange=\"surfto(this)\">\n";
? dann sollte eigentlich das jeweilige Element übergeben werden (PHP ist aber nicht ganz meine Welt im Moment). Wenn es nicht geht, poste das ganze bitte nochmal als HTML-Quelltext.;)

Gruß
 

Remizz

Mitglied
Das geht! :) :)

Ich weiß zwar jetzt nicht wie es funktioniert aber es geht :)

Ich poste dir das ganze jetzt mal als HTML Quelltext damit da Klarheit entsteht:

Code:
<head>
  <script language="JavaScript">
  function surfto(form_element) 
  { 
      var myindex=form_element.selectedIndex; 
      if (form_element.options[myindex].value != "0") 
      { 
          location=form_element.options[myindex].value; 
      } 
  }
</script>
</head>

<form action="index.php?section=add method="post" class="formular">

<select name="kategorie" size="1" onChange="surfto(this)">
    <option value="index.php?section=add">------------</option>
    <option value="index.php?section=add&Kat=(die jeweilige Kategorie9">Der Name der Kategorie</option> (das alles so oft wie Einträge in der Datenbank sind)

</select>

</form>

Vielen vielen Dank! Wenn ich es jetzt noch verstehen würde wär ich glücklich :)
 
Zuletzt bearbeitet:

Tobias Menzel

Erfahrenes Mitglied
Hi,

mit
PHP:
surfto(this)
übergibst Du der Funktion das Objekt, das die Funktion aufruft... und diese nimmst sich wiederum das selektierte Element... ;)

Gruß