Daten nach Wunsch auf Klick anzeigen...

goodie

Grünschnabel
Hallo zusammen,

ich würde gerne eine MYSQL-Tabelle auslesen und für jeden ausgelesen Datensatz die Möglichkeit haben die Inhalte anzuzeigen oder auszublenden.(Standard= ausgeblendet.

Ich habe hier ein Script gefunden wo das ganze statisch schon sehr gut funktioniert:
http://www.tutorials.de/forum/javasc...usblenden.html

Dieses Script sieht so aus:

PHP:
var box = new Array();
box[0] = 'text1';
box[1] = 'text2';

function show(id)
{
        if(document.getElementById(id).style.display=="none")
        {
                for(i=0;i<box.length;i++)
                {
                        document.getElementById(box[i]).style.display="none";
                }

                document.getElementById(id).style.display="block";
        }
        else
        {
                document.getElementById(id).style.display="none";
        }
} 

<div id="testlinkleiste">
<a href="#" onclick="show('text1')">text1</a> <a href="#" onclick="show('text2')">text2</a>
</div>

<div id="text1" style="display:none;">
das hier ist ein text 1.. irgendwas bla bla bla und zwar die nummer <strong>1</strong>
</div>

<div id="text2" style="display:none;">
das hier ist ein text 2.. irgendwas bla bla bla und zwar die nummer <strong>2</strong>
</div>

Nun habe ich das Script so angepasst (test1.php):



PHP:
<?php include "kopf.php";

  $ainhalt = isset($_GET['ainhalt']) ? $_GET['ainhalt'] : "";

?>
<script language="javascript" type="text/javascript" src="js.js"></script>


    <!-- Abfrage der Aufgaben Start -->
              
               <?php 
               
               $result1 = mysql_query("SELECT * FROM aufgabe ORDER BY areihe asc, aid DESC",$connect); 
              
               while($myrows = mysql_fetch_assoc($result1))
              
               { 
              
              // if (($myrow['pid'] == $myrows['afkey'])&&($myrows['aarchiv'] == '0'))
             

              ?>
              


<div id="testlinkleiste">
<a href="#" onclick="show('$1')">Ein</a> <a href="#" onclick="show('$2')">Aus</a>
</div>

<div id="$1" style="display:none;">
<?php echo $myrows['ainhalt'] ?>
</div>

<div id="$2" style="display:none;">

</div>

<script>$1++; $2++;</script><?php } ?>


(js.js)
PHP:
$1=1;$2=1;
var box = new Array();
box[0] = '$1';
box[1] = '$2';
// box[2] = 'text3';
// usw.

function show(id)
{
        if(document.getElementById(id).style.display=="none")
        {
                for(i=0;i<box.length;i++)
                {
                        document.getElementById(box[i]).style.display="none";
                }

                document.getElementById(id).style.display="block";
        }
        else
        {
                document.getElementById(id).style.display="none";
        }
}
also die Arraydefinition im Javascriptteil als Variabeln definiert und diese dann im Anzeigeteil aufgerufen und anschliessend um 1 erhöt...

Leider funktioniert diese Script nur soweit, dass mir alle Datensätze mit Ein/Aus angezeigt werden. Aber egal auf welches Ein/aus der verschiedenen Datensätze ich klicke, mir wird immer nur ein Datensatz Inhalt an der gleichen Stelle angezeigt.
Jemand eine Idee? Besten Dank
goodie
 
nimm mal dies aus der Funktion heraus....
Code:
   for(i=0;i<box.length;i++)
                {
                        document.getElementById(box[i]).style.display="none";
                }
...damit werden eingangs erstmal alle DIVs versteckt....es sorgt also dafür, dass nur eines angezeigt wird.
 
Vielen Dank für den Tip, leider bringt diese Änderung nur, dass der Aus-Link-Button nicht mehr funktioniert. Wobei zweimal auf den EinLink geklickt hat dann eh den Ausblendeffekt.

Irgendwie dachte ich mir, dass es vielleicht was bringt den Variabelnamen zu ändern. (bis jetzt habe ich ja nur den Wert der Variabel erhöt aber Sie heisst immer $1, bzw $2) Also habe ich versucht, dass Script mit $1[i]; $2[i] zu konfigurieren und nachdem er einen Datensatz ausgelesen hat i (vorher i=1 definiert) mit i++ um eins zu erhöhen. Hat aber leider auch nicht den erwünschten erfolg gebracht. Er blendet immer nur den obersten Datensatz ein (bzw. aus) egal welchen Ein/Aus Button ich drücke.

Zum bessern Verständnis wie daqs ganze dann hinterher aussehen soll habe ich mal einen Screenshot gemacht:
http://erstehilfepc.de/screen1.jpg
Wie gesagt, egal welcher Ein/Aus Link gedrückt wird es wird immer nur der oberste Inhalt angezeigt.

Wäre Klasse wenn noch jemand einen Tip für mich hat.
goodie
 

Neue Beiträge

Zurück