"abhängige Listen"-Script funzt nicht

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

  • #31
    Ich habe hier im vorfeld alles gepostet, was mit dem Problem zu tun haben könnte. Ich dachte das es dann schneller geht. Naja war wohl nichts

    Es tut mir leid !!!!!!


    Wenn du aber mit mir drüber diskutieren willst, was richtig und was falsch ist, sollten wir das in nem anderen Threat machen.

    Wenn Du mir helfen willst, dann sag was Du brauchst und dann ist gut.
    Wenn nicht naja dann schönen Tag noch!!

    Kommentar


    • #32
      Hi Phenix,

      schau mal in den Quelltext - möglicherweise werden hier schon mysql-Fehler angezeigt ?!

      Kommentar


      • #33
        hi,

        nein im Quelltext wird leider kein fehler ausgegeben.

        hier mal der quelltext

        PHP-Code:
        <html>
        <
        head>
        <
        title>Test der Formularfunktion</title>
        <
        meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <
        script type="text/javascript">
        <!--
            var 
        liste2=new Array(30)
            for(var 
        i=0;i<liste2.length;i++)
                
        liste2[i]=new Array(2);
            
        liste2[0][0]=1;
            
        liste2[0][1]=Dominix;
            
        liste2[0][2]=Battleship;
                        .......
            
        liste2[29][0]=31;
            
        liste2[29][1]=Veldspar Mining Crystal;
            
        liste2[29][2]=Mining;

        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_auswahl.drp2.options[document.frm_auswahl.drp2.length]=NeuerEintrag;
                }
            }
        }
        -->
        </
        script>

        </
        head>
        <
        body>
        <
        form name="frm_auswahl" action="manufact.php" method="post">

                <
        select name="drp1" size="1" onChange="update_drp2()">
                    <
        option value="Battleship">Battleship</option>
        <
        option value="Cruiser">Cruiser</option>
        <
        option value="Mining">Mining</option>
                </
        select>
            
                    <
        select name="drp2" size="1">
                        <
        option>Start</option>
                </
        select>

        <
        input type="hidden" name="pid" value="pid">
        <
        input type="hidden" name="op" value="mem_add">
        <
        input type="submit" value="Eintragen">

        </
        form>

        <
        script type="text/javascript">
        <!--
            
        update_drp2()
        -->
        </
        script
        </
        body>
        </
        html
        der explorer zeigt mir einen Fehler an und verweißt mich dabei auf die folgende zeile
        PHP-Code:
        <select name="drp1" size="1" onChange="update_drp2()"
        In der Fehlermeldung sagt er "Objekt erwartet"

        Kommentar


        • #34
          Welchen Browser benutzt du?

          Kommentar


          • #35
            ich hab's !!

            Dein Fehler liegt genau hier:
            liste2[0][0]=1;
            liste2[0][1]=Dominix;
            liste2[0][2]=Battleship;
            .......
            liste2[29][0]=31;
            liste2[29][1]=Veldspar Mining Crystal;
            liste2[29][2]=Mining;
            Falls du den IE als Browser benutzt: bei mir werden in der Version 5.0 mehrere Fehler ausgegeben. Mit den Schaltflächen weiter/zurück kannst du blättern.

            Du musst die Strings in Anführungszeichen setzen ...
            PHP-Code:
                liste2[0][0]=1;
                
            liste2[0][1]='Dominix';
                
            liste2[0][2]='Battleship';
                            .......
                
            liste2[29][0]=31;
                
            liste2[29][1]='Veldspar Mining Crystal';
                
            liste2[29][2]='Mining'
            dann lief bei mir - IE5.0 - alles fehlerfrei und wie gewünscht.

            Kommentar


            • #36
              Danke genau das war es ......

              Kommentar


              • #37
                Hi Leutz,
                ich habe ebenfalls ein Problem mit dem Tut - Script. Wenn ich mehr als 20 Einträge in der Tabelle tbl_artikel habe wird in der zweiten Select-Box nur der Wert "START" angezeigt.

                Wäre nett wenn ihr mir helfen könntet.

                Gruß Warbear

                Kommentar


                • #38
                  Hi,

                  schau mal in deinen Quelltext ob da Fehler ausgegeben werden. Wenn nicht bitte die entsprechenden Passagen des PHP-Skriptes und des erzeugten Quelltexts posten.

                  Kommentar


                  • #39
                    Nein, es werden keine Fehlermeldungen ausgegeben. Die Select-Box 1 wird richtig aus der Datenbank ausgelesen und der Javascript Array wird ebenfalls richtig generiert. Irgend was scheint mit der Zuordnung nicht zu funktionieren.

                    Kommentar


                    • #40
                      dem stimme ich zu ... jetzt brauchen wir das Script bzw. den HTML-Quellcode - bei mir werden auch alle Sätze ausgegeben wenn ich mehr als 20 Einträge habe.

                      Kommentar


                      • #41
                        Ok, hier ist der Code. Da ich das ganze als PHP Nuke Modul verwende sieht das ganze wie folgt aus.

                        javascript.php
                        PHP-Code:
                        ...
                        echo 
                        "<script type=text/javascript>";
                        // abhängiges Kombifeld erzeugen
                            
                        $rssql "select * FROM tbl_artikel";
                            
                        $rs=mysql_query($rssql);
                            
                        $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['art_id'].";\n"
                                
                        "\tliste2[$n][1]='".$zeile['art_bez']."';\n"
                                
                        "\tliste2[$n][2]=".$zeile['art_grp'].";\n";
                                
                        $n++;
                            }


                        print 
                        "function update_drp2() {";
                        print 
                        "    var x=document.frm_auswahl.drp2.length;";
                        print 
                        "    for(var n=0; n<x; n++)";
                        print 
                        "        document.frm_auswahl.drp2.options[0]=null;";
                        print 
                        "    for(n=0; n<liste2.length; n++) {";
                        print 
                        "        if(liste2[n][2]==document.frm_auswahl.drp1.value) {";
                        print 
                        "            var NeuerEintrag=new Option(liste2[n][1], liste2[n][0]);";
                        print 
                        "            document.frm_auswahl.drp2.options[document.frm_auswahl.drp2.length]=NeuerEintrag;";
                        print 
                        "        }";
                        print 
                        "    }";
                        print 
                        "}";
                        print 
                        "</script>";
                        ... 


                        index.php
                        PHP-Code:
                        ...
                        echo 
                        "<form name=frm_auswahl method=post action=".$PHP_SELF."?name=addchar&typ=send>
                          <table width=100%  border=0 cellspacing=0 cellpadding=0>
                            <tr>
                              <td><b>Name:</b><br>
                              <input name=char_name type=text size=60></td>
                            </tr>
                            <tr>
                              <td><br>
                                <b>Rang:</b><br>
                                <input name=char_rang type=text size=60></td>
                            </tr>
                            <tr>
                              <td><br>
                                <b>Abteilung:</b><br>"
                        ;
                                echo 
                        " <select name=drp1 size=1 onChange=update_drp2()>";
                                
                        $rs=mysql_query("select * from tbl_art_gruppen");
                                while(
                        $zeile=mysql_fetch_assoc($rs)) {
                                    echo 
                        "<option value=\"".$zeile['art_grp_id']
                                    . 
                        "\">".$zeile['art_gruppe']."</option>\n";
                                }

                        echo 
                        "    </select>";
                                echo 
                        "</td>
                            </tr>
                            <tr>
                              <td><br>
                                <b>Posten:</b><br>"
                        ;
                                echo 
                        "<select name=drp2 size=1>
                                <option>Start</option>
                                </select>"
                        ;
                        ...
                        echo 
                        "</form>
                         <script type=\"text/javascript\">
                        <!--
                            update_drp2()
                        -->
                        </script>"


                        Quelltext:
                        Code:
                        ...
                        <script type=text/javascript>	var liste2=new Array(25)
                        	for(var i=0;i<liste2.length;i++)
                        		liste2[i]=new Array(2);
                        	liste2[0][0]=1;
                        	liste2[0][1]='Commanding Officer';
                        	liste2[0][2]=1;
                        	...
                                
                                ...
                        	liste2[24][0]=25;
                        	liste2[24][1]='Engineer's Mate';
                        	liste2[24][2]=3;
                        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>
                        ...
                        
                        ...
                              <td><br>
                                <b>Abteilung:</b><br> <select name=drp1 size=1 onChange=update_drp2()><option value="1">Command</option>
                        <option value="2">Communications</option>
                        <option value="3">Engineering</option>
                        <option value="4">Flight Control</option>
                        <option value="5">Medical</option>
                        <option value="6">Operations</option>
                        <option value="7">Others</option>
                        <option value="8">Science</option>
                        <option value="9">Security</option>
                        <option value="10">Tactical</option>
                            </select></td>
                            </tr>
                            <tr>
                              <td><br>
                                <b>Posten:</b><br><select name=drp2 size=1>
                                <option>Start</option>
                            	</select>
                        ...

                        Kommentar


                        • #42
                          hmm ... sehe ich so keinen Fehler - welche Browser benutzt du? Werden JavaScript-Fehler angezeigt? (z.B. links unten im IE gelbes Dreieck)

                          Kommentar


                          • #43
                            Problem bei 2. Box

                            Hallo zusammen

                            ich habe mir das Tutorial durchgelesen und versucht dies in mein Skript umzusetzen.
                            Jedoch hab ich noch folgendes Problem

                            Die 2. Dorpdownbox wird nicht gefüllt

                            Hier mein Code:
                            PHP-Code:
                            ...
                            <script type="text/javascript">
                            <!--
                            <?php
                            // abhängiges Kombifeld erzeugen
                                
                            $rs=mysql_query(" select * from tbl_artikel;") or die(mysql_error());
                                
                            $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['art_id'].";\n"
                                    
                            "\tliste2[$n][1]='".$zeile['art_bez']."';\n"
                                    
                            "\tliste2[$n][2]=".$zeile['art_grp'].";\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>


                            <body>
                            ...
                            <td width="70%" colspan="2" bgcolor="#ffffff"><div align="left">
                                <form name="frm_auswahl">
                                <select name="drp1" size="1" onChange="update_drp2()" class="input" style="WIDTH: 300px">
                                <?php
                                    $rs
                            =mysql_query("select * from tbl_art_gruppe") or die(mysql_error());
                                    while(
                            $zeile=mysql_fetch_assoc($rs)) {
                                        echo 
                            "<option value=\"".$zeile['art_grp_id']
                                        . 
                            "\">".$zeile['art_gruppe']."</option>\n";
                                    }
                                
                            ?>
                                </select>
                                    </div></td>
                               </tr>
                               <tr>
                                <td width="30%" bgcolor="#e7e7e7" class="td"><div align="left">Art</div></td>
                                <td width="70%" colspan="2" bgcolor="#ffffff"><div align="left">
                                <select name="drp2" size="1" class="input" style="WIDTH: 300px">
                                    <option>Start</option>
                                </select>
                                </form>
                            <script type="text/javascript">
                                update_drp2()
                            </script>

                            Quelltext auf dem Browser:
                            PHP-Code:
                            <script type="text/javascript">
                            <!--
                                var 
                            liste2=new Array(5)
                                for(var 
                            i=0;i<liste2.length;i++)
                                    
                            liste2[i]=new Array(2);
                                
                            liste2[0][0]=1;
                                
                            liste2[0][1]='Webapplication';
                                
                            liste2[0][2]=1;
                                
                            liste2[1][0]=2;
                                
                            liste2[1][1]='Homepageskripte';
                                
                            liste2[1][2]=1;
                                
                            liste2[2][0]=3;
                                
                            liste2[2][1]='Webapplication 2';
                                
                            liste2[2][2]=2;
                                
                            liste2[3][0]=4;
                                
                            liste2[3][1]='Intranet';
                                
                            liste2[3][2]=2;
                                
                            liste2[4][0]=5;
                                
                            liste2[4][1]='Homepage';
                                
                            liste2[4][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_auswahl.drp2.options[document.frm_auswahl.drp2.length]=NeuerEintrag;
                                    }
                                }
                            }
                            -->
                            </
                            script>
                            </
                            head>

                            </
                            head>


                            <
                            body>
                            ...
                            <
                            td width="70%" colspan="2" bgcolor="#ffffff"><div align="left">
                                <
                            form name="frm_auswahl">
                                <
                            select name="drp1" size="1" onChange="update_drp2()" class="input" style="WIDTH: 300px">
                                <
                            option value="1">Entwicklung</option>
                            <
                            option value="2">Layout</option>
                                </
                            select>
                                    </
                            div></td>
                               </
                            tr>
                               <
                            tr>
                                <
                            td width="30%" bgcolor="#e7e7e7" class="td"><div align="left">Art</div></td>
                                <
                            td width="70%" colspan="2" bgcolor="#ffffff"><div align="left">
                                <
                            select name="drp2" size="1" class="input" style="WIDTH: 300px">
                                    <
                            option>Start</option>
                                </
                            select>
                                </
                            form>
                            <
                            script type="text/javascript">
                                
                            update_drp2()
                            </
                            script
                            Im Browser wird kein gelbes Dreieck unten links angezeigt, nur wenn ich in der 1. Dropbox
                            den Eintrag ändere kommt unten links ein gelbes Dreieck der auf folgende Zeile Verweist:
                            PHP-Code:
                            var x=document.frm_auswahl.drp2.length
                            Kann mir dabei evtl jemand helfen den Fehler zu finden und zu beseitigen ?
                            Im vorraus schon mal vielen Dank
                            Zuletzt geändert von mgoertz; 25.04.2005, 22:40.

                            Kommentar


                            • #44
                              wie sieht die Seite denn nach dem ersten Laden aus? Ist drp2 gefüllt oder steht hier nur "Start"?

                              BTW: welcher Browser, welche Version (ich vermute mal IE)

                              Kommentar


                              • #45
                                Original geschrieben von Patrick_PQ
                                wie sieht die Seite denn nach dem ersten Laden aus? Ist drp2 gefüllt oder steht hier nur "Start"?
                                http://forum.de.selfhtml.org/?t=106440&m=659591
                                I don't believe in rebirth. Actually, I never did in my whole lives.

                                Kommentar

                                Lädt...
                                X