Abhängiges DropDown Menü

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Abhängiges DropDown Menü

    Ich möchte zwei Dropdown Felder erstellen, dabei sollte
    das zweite("modell") vom ersten("hersteller") abhängig sein.

    Folgende Seite habe ich zum Lösen benutztLink , allerdings weiss ich nicht wohin das hier soll, da es schon vorhanden ist.

    PHP-Code:
    <select name="drp1" size="1" onChange="update_drp2()"
    So siehts momentan bei mir aus:
    PHP-Code:
    <?php
        
    include("open_db.php");
    ?><head>
    <script type="text/javascript">
    <!--
    <?php
    // abhängiges Kombifeld erzeugen
        
    $rs=mysql_query("select * from auto");
        
    $rows=mysql_num_rows($rs);
        echo 
    "\tvar liste2=new Array($rows)\n"
        
    "\tfor(var i=0;i<liste2.length;i++)\n"
        
    "\t\tliste2[i]=new Array(2);\n";
        
    $n=0;
        while(
    $zeile=mysql_fetch_assoc($rs)) {
            echo 
    "\tliste2[$n][0]=".$zeile['id'].";\n"
            
    "\tliste2[$n][1]='".$zeile['modell']."';\n"
            
    "\tliste2[$n][2]=".$zeile['hersteller_id'].";\n";
            
    $n++;
        }
    ?>
    function update_drp2() {
        var x=document.frm_auswahl.drp2.length;
        for(var n=0; n<x; n++)
            document.frm_auswahl.drp2.options[0]=null;
        for(n=0; n<liste2.length; n++) {
            if(liste2[n][2]==document.frm_auswahl.drp1.value) {
                var NeuerEintrag=new Option(liste2[n][1], liste2[n][0]);
                document.frm_auswhal.drp2.options[document.frm_auswahl.drp2.length]=NeuerEintrag;
            }
        }
    }
    -->
    </script>
    </head>

    <form name="frm_auswahl">
        <select name="drp1" size="1">
        <?php
            $rs
    =mysql_query("select * from hersteller");
            while(
    $zeile=mysql_fetch_assoc($rs)) {
                echo 
    "<option value=\"".$zeile['id']
                . 
    "\">".$zeile['name']."</option>\n";
            }
        
    ?>
        </select>

        <select name="drp2" size"1">
            <option>Start</option>
        </select>
    </form>

    <script type="text/javascript">
    <!--
        update_drp2()
    -->
    </script>

    <?php
    include("close_db.php");
    ?>
    Das erste Feld funktioniert und es werden alle hersteller ausgelesen.

  • #2
    da du js einsetzst, bitte auch den Code was im Browser ankommt posten, ich glaube nicht, dass einer Lust hast durch den Wald von php und JS zu latschen.

    **erstnal move to html & co.**

    Kommentar


    • #3
      PHP-Code:
      <head>
      <
      script type="text/javascript">
      <!--
          var 
      liste2=new Array(2)
          for(var 
      i=0;i<liste2.length;i++)
              
      liste2[i]=new Array(2);
          
      liste2[0][0]=1;
          
      liste2[0][1]='330i';
          
      liste2[0][2]=1;
          
      liste2[1][0]=2;
          
      liste2[1][1]='mustang';
          
      liste2[1][2]=2;
      function 
      update_drp2() {
          var 
      x=document.frm_auswahl.drp2.length;
          for(var 
      n=0n<xn++)
              
      document.frm_auswahl.drp2.options[0]=null;
          for(
      n=0n<liste2.lengthn++) {
              if(
      liste2[n][2]==document.frm_auswahl.drp1.value) {
                  var 
      NeuerEintrag=new Option(liste2[n][1], liste2[n][0]);
                  
      document.frm_auswhal.drp2.options[document.frm_auswahl.drp2.length]=NeuerEintrag;
              }
          }
      }
      -->
      </
      script>
      </
      head>

      <
      form name="frm_auswahl">
          <
      select name="drp1" size="1">
          <
      option value="1">bmw</option>
      <
      option value="2">ford</option>
          </
      select>

          <
      select name="drp2" size"1">
              <
      option>Start</option>
          </
      select>
      </
      form>

      <
      script type="text/javascript">
      <!--
          
      update_drp2()
      -->
      </
      script

      Kommentar


      • #4
        wird ein Fehler ausgegeben (JavaScript) wenn ja, welcher?

        Kommentar


        • #5
          leider keiner

          wohin soll ich denn das hier schreiben/ersetzen???
          PHP-Code:
          <select name="drp1" size="1" onChange="update_drp2()"
          Zuletzt geändert von rswtal; 21.11.2005, 13:50.

          Kommentar


          • #6
            Original geschrieben von rswtal
            leider keiner
            Doch - mindestens einer schon deshalb, weil du deinen Formularnamen im JS-Code falsch geschrieben hast.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Original geschrieben von rswtal
              leider keiner
              natürlich wird einer ausgegeben:
              PHP-Code:
              document.frm_auswhal has no properties 
              das ganze ist ein dusseliger tippfehler!
              PHP-Code:
              document.frm_auswhal.drp2.options[document.frm_auswahl.drp2.length]=NeuerEintrag
              peter
              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
              Meine Seite

              Kommentar


              • #8
                Vielen Dank an die Helfer ;-)

                Diese Version klappt endlich.
                PHP-Code:
                <script type="text/javascript">
                <!--
                <?php
                // abhängiges Kombifeld erzeugen
                    
                $rs=mysql_query("select * from auto");
                    
                $rows=mysql_num_rows($rs);
                    echo 
                "\tvar liste2=new Array($rows)\n"
                    
                "\tfor(var i=0;i<liste2.length;i++)\n"
                    
                "\t\tliste2[i]=new Array(2);\n";
                    
                $n=0;
                    while(
                $zeile=mysql_fetch_assoc($rs)) {
                        echo 
                "\tliste2[$n][0]=".$zeile['id'].";\n"
                        
                "\tliste2[$n][1]='".$zeile['modell']."';\n"
                        
                "\tliste2[$n][2]=".$zeile['hersteller_id'].";\n";
                        
                $n++;
                    }
                ?>
                function update_drp2() {
                    var x=document.frm_auswahl.drp2.length;
                    for(var n=0; n<x; n++)
                        document.frm_auswahl.drp2.options[0]=null;
                    for(n=0; n<liste2.length; n++) {
                        if(liste2[n][2]==document.frm_auswahl.drp1.value) {
                            var NeuerEintrag=new Option(liste2[n][1], liste2[n][0]);
                            document.frm_auswahl.drp2.options[document.frm_auswahl.drp2.length]=NeuerEintrag;
                        }
                    }
                }
                -->
                </script>
                </head>

                <form name="frm_auswahl">
                    <select name="drp1" size="1" onChange="update_drp2()">
                    <?php
                        $rs
                =mysql_query("select * from hersteller");
                        while(
                $zeile=mysql_fetch_assoc($rs)) {
                            echo 
                "<option value=\"".$zeile['id']
                            . 
                "\">".$zeile['name']."</option>\n";
                        }
                    
                ?>
                    </select>

                    <select name="drp2" size"1">
                        <option>Start</option>
                    </select>
                </form>

                <script type="text/javascript">
                <!--
                    update_drp2()
                -->
                </script>

                Kommentar


                • #9
                  OffTopic:
                  und das nächste mal benutzt du dann den firefox mit integrierter js-konsole. da findet man solche fehler sehr schnell.


                  peter
                  Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                  Meine Seite

                  Kommentar

                  Lädt...
                  X