+ Antworten
Ergebnis 1 bis 5 von 5

Thema: zwei selectoren füllen

  1. #1
    TP-Specialist theo bringt sich richtig ein Avatar von theo
    Registriert seit
    Apr 2002
    Ort
    743, evergreen terrace
    Beiträge
    2.346

    zwei selectoren füllen

    'nabend

    ich hab mal wieder ein bissl zu lange gesessen und nun eine hirnblockade.
    ich hab einen multiselector, der aus einer db ausgelesen wird. jetzt soll es aber nicht ein feld sein, sondern zwei. die nebeneinander und dann soll beim klicken die angeklickte option in den zweiten selector uebernommen werden bzw. umgekehrt beim klicken in den anderen sollen optionen geloescht werden. mir faellt nur grad kein bsp. dafuer ein ...
    hier der code:
    Code:
    function searchMulti(){
      var selects = document.getElementsByTagName("select");
      var multi = new Array();
      var opt;
      
      // alle multiselects finden
      var x = 0;
      for(var i=0; i<selects.length; i++){
        if(selects[i].size>1){
          multi[x] = selects[i];
          x++;
        }
      }
      
      // multiselects duplizieren, fuellen und ausgeben
      for(var y=0; y<multi.length; y++){
        var opts = multi[y].getElementsByTagName("option");
        
        var u = '';
        var v = '';
        for(var z=0; z<opts.length; z++){
          if(opts[z].value.length>0){
            // inhalt fuer zweiten selector
            u+= '<option value="'+opts[z].value+'" onclick="addOpt(this.value,\''+multi[y].id+'\',\''+opts[z].innerHTML+'\')">'+opts[z].innerHTML+'</option>';
            if(opts[z].selected==true){
              // inhalt fuer ersten selector
              v+= '<option value="'+opts[z].value+'" selected="selected" onclick="delOpt(this.value,\''+multi[y].id+'\')">'+opts[z].innerHTML+'</option>';
            }
          }
        }
            
        // inhalt rausholen und zwischenlagern
        var brok      = multi[y].parentNode;
        var link      = brok.getElementsByTagName("a");
        var selector  = brok.getElementsByTagName("select");
        
        // var newOne = document.createElement("a");
        // newOne.href = link[0].href;
        // newOne.innerHTML = link[0].innerHTML;
        // alert(link[0].href);
        
        // alten inhalt loeschen
        multi[y].parentNode.innerHTML = '';
        // zweiten selector aufbauen
        var select = document.createElement("select");
        select.size = 5;
        select.id = multi[y].id+"_2";
        select.innerHTML = u;
        select.setAttribute("multiple", true);
        brok.appendChild(select);
        
        // ersten selector aufbauen
        var select = document.createElement("select");
        select.size = 5;
        select.name = multi[y].name;
        select.id = multi[y].id;
        select.innerHTML = v;
        select.setAttribute("multiple", true);
        brok.appendChild(select);
        
        // brok.appendChild(newOne);
      }
    }
    die selectorfelder werden gefunden, die optionen ausgelesen, die selektierten ausgesucht und in das zweite feld uebernommen.
    und jetzt das problem: die inhalte werden im safari und ff sauber aufgebaut und im ie ... mal wieder nicht.
    meine vermutung: die befuellung der selectoren per innerhtml haut nicht hin. wie krieg ich die sachen trotzdem rein?


    gruss
    /b{2}|[^(bb)]/

    [Workshop] Nested sets

  2. #2
    TP-Moderator Malleus ist ein richtiges Arbeitstier - DANKE Malleus ist ein richtiges Arbeitstier - DANKE Malleus ist ein richtiges Arbeitstier - DANKE Malleus ist ein richtiges Arbeitstier - DANKE Avatar von Malleus
    Registriert seit
    Aug 2004
    Ort
    Homburg / Saarland
    Beiträge
    711
    Hi Theo,
    lange nichts mehr von Dir gehört ;-)

    Ist das ganze hier noch aktuell? Wenn ja, schau Dir mal

    Left2Right

    an. Das hab' ich mal in meiner großen Schaffensphase gebaut.

    Im Grunde mußt Du nur das OPTION-Tag verwenden. Dann sollte es überall gehen.

    Wenn's nicht klappt, meld' Dich einfach nochmal.

    Tschau

    Frank

  3. #3
    TP-Specialist theo bringt sich richtig ein Avatar von theo
    Registriert seit
    Apr 2002
    Ort
    743, evergreen terrace
    Beiträge
    2.346
    hi frank,

    du hast mal wieder genau ins schwarze getroffen. das ist genau das, was ich gesucht habe.
    hab vielen dank!
    /b{2}|[^(bb)]/

    [Workshop] Nested sets

  4. #4
    TP-Specialist theo bringt sich richtig ein Avatar von theo
    Registriert seit
    Apr 2002
    Ort
    743, evergreen terrace
    Beiträge
    2.346
    kleiner nachtrag: natuerlich ist mal wieder nicht alles ganz so einfach.
    mein script soll die seite durchsuchen, alle multiselect-felder finden und dann daraus zwei entsprechende hin-und-her-felder machen.
    /b{2}|[^(bb)]/

    [Workshop] Nested sets

  5. #5
    TP-Specialist theo bringt sich richtig ein Avatar von theo
    Registriert seit
    Apr 2002
    Ort
    743, evergreen terrace
    Beiträge
    2.346
    so ... bin fast durch. wenn ich jetzt noch meinen funktionen parameter mitgeben koennte ...
    b2.onclick = function() { right2left(); return false; }
    dann waer ich glaub ich erstmal gluecklich ...
    /b{2}|[^(bb)]/

    [Workshop] Nested sets

+ Antworten

Ähnliche Themen

  1. Zwei Firmennamen, zwei Logos, ein Gewerbe
    Von Crenshaw im Forum Gründung & Selbstständigkeit
    Antworten: 2
    Letzter Beitrag: 07.02.2009, 18:41
  2. Zwei spans oder zwei divs...
    Von ornyma im Forum HTML & CSS
    Antworten: 2
    Letzter Beitrag: 01.10.2007, 19:32
  3. Zwei Gewerbescheine für zwei verschiedene Firmen (e.K. und GbR)???
    Von zwerg82 im Forum Gründung & Selbstständigkeit
    Antworten: 2
    Letzter Beitrag: 08.01.2006, 12:17
  4. Zwei bilder von Zwei Tabellen zusammenfügen
    Von HTML_Freak im Forum Dreamweaver & andere Webeditoren
    Antworten: 6
    Letzter Beitrag: 17.12.2002, 11:33
  5. Antworten: 3
    Letzter Beitrag: 06.10.2002, 08:50

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51