[JavaScript] Idee benötigt...

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

  • [JavaScript] Idee benötigt...

    Ich komme grade nicht so ganz weiter(bin totaler js-n00b )

    Ich habe ein PHP-Script,dass mehrere Datensätze auflistet.Zu jedem Datensatz gibt es noch Unterinformationen,die allerdings erst auf Wunsch(d.h. Klick )angezeigt werden sollen(in einem iframe).
    So sollte das ungefähr aussehen:

    Datensatz1 (Informationen azeigen +)
    Datensatz2 (Informationen anzeigen +)
    etc.

    Nach einem Klick auf eins soll das dann so aussehen:

    Datensatz1 (Informationen verstecken -)
    <iframe src="datensatz.php?id=1"></iframe>
    Datensatz2 (Informationen anzeigen +)

    Das Info verstecken -/anzeigen + ist nicht mein Problem,dass kriieg ich selbst noch hin
    Ich hab bisjetzt das gemacht:

    Code:
    var show_frame = 0;
    function load_commentframe(id)
    {
     if( show_frame == 0 )
     {
     document.getElementById( id ).innerHTML += "<iframe id='frame_"+id+"' name='frame_"+id+"' class='frame' src='index.php?action=show_details&id="+id+""'></iframe>";
     show_frame = 1;
     }
     else
     {
     var frame = "frame_"+id;
     document.getElementById( frame ).style.display = "none";
     show_frame = 0;
     }
    }
    Das funktioniert ja auch ganz gut,allerdings nur mit einem Datensatz.d.h. Ich kann einen Datensatz öffnen und schliessen ohne Probleme.
    Hier das Problem:
    Habe Ich Datensatz1 geschlossen,funktiniert Datensatz2 ohne Problem.
    Lasse Ich Datensatz1 aber offen und probiere Datensatz2 auch noch zu öffnen,kriege Ich ziemlich komische Sachen zu sehen (mal öffnen sich 2 auf einmal,mal nur der eine,mal schliesst der andere,etc )
    Wie mache ich es,dass mehrere öffnen und schliessen können?
    Habe da an Variable Variablen gedacht für show_frame.Irgendwas mit show_frame PLUS die jeweilige id: show_frame1 z.B..
    Weiss allerdings nicht ganz wie Ich das umsetzen soll...
    Ideen?

  • #2
    kannst du nicht einfach nur das src-attribut des iframes ändern?

    oder ganz davon abkommen und das ohne iframe lösen?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Der iframe ist praktisch,weil ja sonst alle Unterinformationen von jedem Datensatz geladen werden müssen,was ja ziemlich lange dauern kann bei vielen Datensätzen.Der Iframe lädt immer nur das was man wirklich brauch.

      Und falls du meinst,einfach alles in einer neuen Seite zu laden:
      Ich finde das wäre mal ein schönes Feature und gut aussehen tuts auch!

      Zum src-Attribut:
      1. Es werden ja unter jedem Datensatz ein neuer iFrame geöffnet
      2. Es sollen ja mehrere iFrames vorhanden sein können.

      Kommentar


      • #4
        du willst doch immer nur einen datensatz komplett anzeigen oder?
        wozu mehrere iframes?

        ich denke so sollte es auf jeden fall gehen, aber wenn du unbedingt js haben willst musst du dir was anders einfallen lassen (z.b. alle iframes durchgehen und unsichtbar machen und dann nur den gewünschten wieder anzeigen)*g*
        PHP-Code:
        <?php
        if (isset($_GET['cat']))
          
        $cat=(int)$_GET['cat'];
        else
          
        $cat=0;
        ?>
        <ul>
          <li><a href="index.php"<?php if ($cat!=1) echo '?cat=1'?>">Kategorie 1</a>
            <?php
              
        if ($cat==1)
                echo 
        '<p>Detailinfo 1</p>';
            
        ?>
          </li>
          <li><a href="index.php?<?php if ($cat!=1) echo '?cat=2'?>">Kategorie 2</a>
            <?php
              
        if ($cat==2)
                echo 
        '<p>Detailinfo 2</p>';
            
        ?>
          </li>
          <li><a href="index.php?<?php if ($cat!=1) echo '?cat=3'?>">Kategorie 3</a><
            <?php
              
        if ($cat==3)
                echo 
        '<p>Detailinfo 3</p>';
            
        ?>
          </li>
        </ul>
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Nein,Ich möchte soviele anzeigen lassen,wie angeklickt werden.
          Und es "muss" JS sein,weil bei PHP ja die Seite neugeladen wird,was ja den Sinn kaputt macht

          Trotzdem danke für die Mühe

          Kommentar


          • #6
            und alles vorladen und nur display:none auf display:block setzen willst du nicht?

            dann bastel dir zwei arrays (außer assoziative arrays gehen auch in js) mit id der möglichen einträge und true oder false, je nachdem ob er bereits angezeigt wird

            damit soltle es gehen
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              nein,vorladen dauert ja bei 100 Datensätzen + mehrere Queries/Joins für Unterdatensätze ja ziemlich lange

              Aber die Idee mit den Arrays ist gut.Werds nachher gleich mal ausprobieren,danke!

              Kommentar

              Lädt...
              X