[JavaScript] options ausblenden

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

  • #16
    Einen gangbaren Weg hattest du dir doch im vorherigen Posting selber schon überlegt - also warum verfolgst du diesen nicht weiter?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #17
      hmm, naja, ich muss sagen javascript ist nicht so ganz mein ding... wie baue ich denn ein mehrspaltiges array auf und lese die werte ein? naja, das bekomme ich schon irgendwie hin, aber über den ganzen seitenaufruf hinweg muss das array ja gespeichert werden, gibt es sowas wie eine global variable die immer da ist in javascript?!?

      Kommentar


      • #18
        Hallo, hab das jetzt so gemacht, mit zwei hidden feldern für das Array. Nur leider löscht er schonmal nicht alle options raus, und öfters steht auch ein eintrag 2mal drin, und bei der suche kommen einträge raus die den suchstring garnicht enthalten... sonst funzt es aber! Sieht einer den fehler?!?

        PHP-Code:
        <script type="text/javascript">

          function 
        addresssearch(searchValue) {
          var 
        optionen= new Array();
          var 
        werte= new Array();
          var 
        str1 document.shoppingCartDetailsForm.werte.value
         
        //die beiden hidden felder
          
        var str2 document.shoppingCartDetailsForm.optionen.value;
          if(
        str1 == "")
          {
        //Beim ersten Aufruf (felder leer) alle options in die hidden felder
              
        for(i=0idocument.shoppingCartDetailsForm.grAddressNo.options.lengthi++) {
                  
        werte[i]=document.shoppingCartDetailsForm.grAddressNo.options[i].value;
                  
        optionen[i]=document.shoppingCartDetailsForm.grAddressNo.options[i].text;
                  }
                  
        document.shoppingCartDetailsForm.werte.value=werte.join('#');
            
        document.shoppingCartDetailsForm.optionen.value=optionen.join('#');
          }
          else
          {
              
        //wen nwas in den feldern ist diese ins array
        werte document.shoppingCartDetailsForm.werte.value.split("#");
        optionen document.shoppingCartDetailsForm.optionen.value.split("#");
        }

         for(
        i=0idocument.shoppingCartDetailsForm.grAddressNo.options.lengthi++) {
        document.shoppingCartDetailsForm.grAddressNo.options[i]=null;
        //Alle options löschen
         
        }

            for(
        i=0iwerte.lengthi++) {
        //Neue options erstellen auf basis des arrays
              
        if(searchValue.length == || optionen[i].toLowerCase()
        .
        indexOf(searchValue.toLowerCase()) >= 0){
                
        NeuerEintrag = new Option(optionen[i],werte[i], falsefalse);
          
        document.shoppingCartDetailsForm.grAddressNo.options
        [document.shoppingCartDetailsForm.grAddressNo.length] = NeuerEintrag;
              }
            }
            
         }
        </
        script
        Zuletzt geändert von Simon6785; 16.11.2005, 10:20.

        Kommentar


        • #19
          so, ich habs hinbekommen, Funktioniert einwandfrei, danke für eure Hilfe. Eine Frage noch, gibt es eine Möglichkeit das ich ohne die Hidden Felder auskomme, bzw Sieht noch jemand eine Möglichkeit Performance zu sparen? Gruß Simon

          PHP-Code:
          <script type="text/javascript">

            function 
          addresssearch(searchValue) {
            
          //Arrays deklarieren  
            
          var optionen= new Array();
            var 
          werte= new Array();
            if(
          document.shoppingCartDetailsForm.werte.value == "")
            {
                
          //Wenn noch keine Werte im hidden Feld sind (erster Aufruf 
                 //der Function), Arrays und Felder aus den HTML Options füllen
                
          for(i=0idocument.shoppingCartDetailsForm.grAddressNo.options.lengthi++) 
                {
                    
          werte[i]=document.shoppingCartDetailsForm.grAddressNo.options[i].value;
                    
          optionen[i]=document.shoppingCartDetailsForm.grAddressNo.options[i].text;
                }
              
          document.shoppingCartDetailsForm.werte.value=werte.join('#');
              
          document.shoppingCartDetailsForm.optionen.value=optionen.join('#');
            }
            else
            {    
                
          //Wenn Werte in den Feldern sind, diese Werte in die Arrays schreiben
              
          werte document.shoppingCartDetailsForm.werte.value.split("#");
              
          optionen document.shoppingCartDetailsForm.optionen.value.split("#");
            }
          //AB HIER ARRAYS WERTE UND OPTIONEN GEFÜLLT MIT DEN ORIGINAL ADRESSEN!

          //ALLE Options im Select Feld löschen
           
          for(i=0iwerte.lengthi++) 
               {
                  
          document.shoppingCartDetailsForm.grAddressNo.options[0]=null;
               }

           for(
          i=0iwerte.lengthi++) 
           {
                    if(
          optionen[i].toLowerCase().indexOf(searchValue.toLowerCase()) >= 0)    
          //Array durchsuchen nach search Value
                    
          {
                      
          NeuerEintrag = new Option(optionen[i],werte[i], falsefalse);
              
          //Wenn gefunden wurde diese Option neu erstellen
                    
          document.shoppingCartDetailsForm.grAddressNo.
          options[document.shoppingCartDetailsForm.grAddressNo.length] = NeuerEintrag;
                    }
           }
              
           }
          </
          script

          Kommentar

          Lädt...
          X