Dropdown reagiert auf onChange

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

  • #16
    In dem Fall ja. Ich möchte quasi so etwas herausbekommen:

    ...
    toadd["34"] = new Array();
    toadd["34"][0] = "firma 1";
    toadd["34"][1] = "firma 2";
    toadd["34"][2] = "firma 3";
    toadd["34"][3] = "firma 4";
    toadd["35"] = new Array();
    toadd["35"][0] = "firma 1";
    toadd["35"][1] = "firma 2";
    toadd["35"][2] = "firma 3";
    toadd["35"][3] = "firma 4";
    ...

    Ich hatte mir das so vorgestellt. Ich lese erst einmal die PLZ aus. Bin mir noch nicht ganz sicher, ob ich es nur mit der ersten Stelle der PLZ mache oder mit den ersten beiden.

    für jeden PLZ-Bereich, z.B. 34 als erstes die Zeile, die in Javascript ein neues Array definiert. und dann möchte ich alle Firmane ausgeben, die zu diesem PLZ-Bereich vorhanden sind. Dabei muss für das Array ja ein Zähler die einzelnen Firmen mit 0 beginnend hochzählen.

    Das ist das Problem, das ich momentan habe.

    Kommentar


    • #17
      erzeug dir besser erstmal ein array aus den sql-daten, das sollte so aussehen:
      PHP-Code:
      while ($ergebnis mysql_fetch_assoc($query))
      {
          
      $werte[$ergebnis['plz']][]=$ergebnis['firma'];
      }

      // ^^ das sollte idealerweise das ergeben:
      // $werte = array(35=>array('firma1','firma2','firma3'),
      //             36=>array('firma61','firma62','firma63')
      //             );
      $a '';
      foreach(
      $werte as $k=>$res)
      {
           
      $z count($res);
           for (
      $i=0;$i<$z;$i++)
           {
                if(
      $i == 0)
                {
                    
      $a .= 'var toadd["'.$k.'"] = new Array();'.chr(13);
                }
                
      $a .= 'toadd["'.$k.'"]['.$i.'] = "'.$res[$i].'";'.chr(13);
           }
      }
      echo 
      $a
      so, das schaust du dir in ruhe an und versuchst das ganze array-thema zu
      verstehen (eindimensional, mehrdimensional, assoziativ ... + for & foreach)
      dann solltest du klarkommen ...
      Kissolino.com

      Kommentar


      • #18
        Hallo Wurzel,

        vielen, vielen Dank . Es funktioniert so prima.

        Danke, Chriss

        Kommentar


        • #19
          Hallo Wurzel,

          hab grad was festgestellt. Ich muss ja schon irgendwie ein wenig die dritte Normalisierung einhalten. Deswegen muss ich das ganze noch ein wenig abändern.

          Es gibt für jeden Hersteller jetzt noch eine HerstellerID und für jedes Modell eine ModellID.

          Diese ID's werden in den Optionsfelder als Value übergeben. Wie muss ich das mit dem $wert und dem foreach ändern, damit es trotzdem wieder passt?

          Muss ich evtl. noch ein zweites Array aufbauen?
          EDIT:

          Ich hab mir gerade doch noch was anderes überlegt. Ich kann die ID's ja auch hinterher beim Einfügen des Datensatzes in die DB vorher auslesen.

          Kommentar


          • #20
            Hallo,

            ich hab noch ein Problem mit dme Script. Es funktioniert jetzt prima, allerdings möchte ich, wenn das Formular abgesendet wurde und später erneut aufgerufen wird, dass in den beiden Dropdownfelder auch wieder die vorher ausgewählten Werte als "Option Selected" ausgewählt sind.

            Wie kann ich das machen?

            Danke, Chriss

            Kommentar


            • #21
              in deiner while-schleife baust du bei der ausgabe das/die js-arrays ... bau
              halt gleichzeitig die selectboxen und füll sie mit den entsprechenden werten.

              das selected geht über einen "gruppenwechsel".
              Kissolino.com

              Kommentar


              • #22
                Hallo Wurzel,

                das habe ich jetzt leider nicht ganz verstanden. Kannst du es mir evtl. noch einmal etwas auzsführlicher erklären?

                Danke, Chriss

                Kommentar


                • #23
                  Original geschrieben von Wurzel
                  PHP-Code:
                  while ($ergebnis mysql_fetch_assoc($query))
                  {
                      
                  $werte[$ergebnis['plz']][]=$ergebnis['firma'];
                  }

                  // ^^ das sollte idealerweise das ergeben:
                  // $werte = array(35=>array('firma1','firma2','firma3'),
                  //             36=>array('firma61','firma62','firma63')
                  //             );
                  $a '';
                  foreach(
                  $werte as $k=>$res)
                  {
                       
                  $z count($res);
                       for (
                  $i=0;$i<$z;$i++)
                       {
                            if(
                  $i == 0)
                            {
                                
                  $a .= 'var toadd["'.$k.'"] = new Array();'.chr(13);
                            }
                            
                  $a .= 'toadd["'.$k.'"]['.$i.'] = "'.$res[$i].'";'.chr(13);
                       }
                  }
                  echo 
                  $a
                  ^^^hier hast du doch schon (fast) alles ... ob du jetzt in $a das js-array speicherst
                  oder in $b1 - $b4711 <select>s generierst, ist doch von der vorgehensweise
                  kein grosser unterschied.

                  in der schleife vergleichst du dann immer den array-wert mit dem ausgelesenen
                  db-wert und wenns übereinstimmt => selected sonst nix
                  Kissolino.com

                  Kommentar


                  • #24
                    Achso, o.k. Aber funktioniert es denn dann noch mit dem zweiten Pulldown, dass dieses sich automatisch ändert?

                    Kommentar


                    • #25
                      wäre jetzt nicht endlich mal wieder ein bisschen selber nachdenken angesagt ...?
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #26
                        Hallo ,

                        ich krieg es immer noch nicht hin. Ich steh total auf dem Schlauch. Könnt ihr mir nicht evtl. einen passenden Codeschnipsel zumindestens ansatzweise geben?

                        Ich weiß, mit den Codeschnipsel seit ihr etwas knauserich, aber ich kapiers einfach nicht .

                        Danke, Chriss

                        Kommentar


                        • #27
                          Original geschrieben von Tomcat Chriss
                          Ich weiß, mit den Codeschnipsel seit ihr etwas knauserich,
                          also ich sehe da oben jede menge code ....
                          h.a.n.d.
                          Schmalle

                          http://impressed.by
                          http://blog.schmalenberger.it



                          Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                          ... nur ohne :-)

                          Kommentar


                          • #28
                            Original geschrieben von Wurzel
                            ^^^hier hast du doch schon (fast) alles ... ob du jetzt in $a das js-array speicherst
                            oder in $b1 - $b4711 <select>s generierst, ist doch von der vorgehensweise
                            kein grosser unterschied.

                            in der schleife vergleichst du dann immer den array-wert mit dem ausgelesenen
                            db-wert und wenns übereinstimmt => selected sonst nix
                            Halo Wurzel,

                            ich bin echt am verzweifeln. Ich kapier nicht, wie ich das realisieren soll. Kann mir bitte jemand helfen.

                            Danke, Chriss

                            Kommentar


                            • #29
                              PHP-Code:
                              <?php

                              while ($ergebnis mysql_fetch_assoc($query))
                              {
                                  
                              $werte[$ergebnis['plz']][]=$ergebnis['firma'];
                              }

                              // ^^ das sollte idealerweise das ergeben:
                              // $werte = array(35=>array('firma1','firma2','firma3'),
                              //             36=>array('firma61','firma62','firma63')
                              //             );

                              //einschub -----------------------------------------------
                              $plz 40;
                              $firma 'muster';
                              $basis '<select name="basis">';
                              $neu '<select name="neu">';
                              //einschub -----------------------------------------------
                              $a '';

                              foreach(
                              $werte as $k=>$res)
                              {
                              // -------------------------------------------------------
                                   
                              if($k == $plz)
                                   {
                                       
                              $ins1 ' selected';
                                       
                              // hier sollte das firmen select gefüllt werden
                                   
                              }
                                   else
                                   {
                                       
                              $ins1 '';
                                   }
                                   
                              $basis .= '<option value="'.$k.'"'.$ins1'>'.$k.'</otion>';
                              // -------------------------------------------------------
                                   
                              $z count($res);
                                   for (
                              $i=0;$i<$z;$i++)
                                   {
                                        if(
                              $i == 0)
                                        {
                                            
                              $a .= 'var toadd["'.$k.'"] = new Array();'.chr(13);
                                        }
                                        
                              $a .= 'toadd["'.$k.'"]['.$i.'] = "'.$res[$i].'";'.chr(13);
                                   }
                              }
                              echo 
                              $basis .= '</select>';
                              echo 
                              $neu .= '</select>';
                              echo 
                              $a;
                              ?>
                              ... mal als ansatz ... ist ungetestet ... die 2. select solltest du selber füllen können
                              Kissolino.com

                              Kommentar


                              • #30
                                Prima, danke. Damit sollte ich was anfangen können.

                                Kommentar

                                Lädt...
                                X