aufklappen / zuklappen funktioniert nicht richtig

draig

Mitglied
Ich habe mit Java ein Aufklappen und Zuklappen Link erstellt. Jedoch soll unterschiedliche Sachen aufgeklappt/zugeklappt werden. Er klappt aber immer nur das selbe auf.

Beispiel: http://www.konsolen-sector.de/projecte/fxp/livedemo/thread.php?threadid=105&sid=

Wenn man aufs erste Öffnen klickt, klappt er diese Tabelle auf. Wenn man dadrunter aufs zweite Öffnen klickt, klappt er nicht die 2 Tabelle auf, sonder die erste zu bzw auf.
Danke schonmal für die Hilfe.


Das ist der Code:
PHP:
<script type="text/javascript" language="JavaScript1.2">
var angezeigt = false;

function versteckt() 
{ 
	if (angezeigt)
	{
  window.document.images['Icon'].src                     = '{$style['imagefolder']}/plus.gif';
    window.document.getElementById('StatusText').innerHTML = 'Öffnen';
		document.getElementById('speed').style.display = 'none';
		angezeigt = false;
	}
	else
	{
    window.document.images['Icon'].src                     = '{$style['imagefolder']}/minus.gif';
    window.document.getElementById('StatusText').innerHTML = 'Schließen';
		document.getElementById('speed').style.display = 'block';
		angezeigt = true;
	}
} 
</script>
PHP:
<a 
     onclick="versteckt();"><img src="{$style['imagefolder']}/plus.gif" style="border-width:0px;" alt="+" name="Icon"></a> <a href=""
     onclick="versteckt(); return false;" id="StatusText">Öffnen</a>


</span></td>
</tr>
</table>

<table cellpadding="4" cellspacing="1" border="0" width="450" class="tableinborder" style="display : none" id="speed">


Jetzt kommt ein anderer Code, der genau macht was ich will, nur mit einen Prob:
Die Daten aus einer Mysql Datenbank abgelesen. Ich weiss nämlich nicht wie viele Beiträge dort sind und in jeden Beitrag wird nicht dieser Post gemacht. Es kann sein das er 2 mal hintereinander kommt, aber es kann auch sein, das er alle 3 Beiträge 1 mal kommt. Also muss er irgendwie die Paramater (Nummerierung) automatisch mahen. Wäre nett wenn jemand mir erklären würde wie das geht.

PHP:
<html>
<head>
  <title>Auf- und zuklappen</title>
  <script type="text/javascript">
      var imagefolder = ''; // hier bitte die URL zum image Ordner angeben

    // name = ID des zu schließenden 'Dings' (div, tr, td, was auch immer)
    // iconname = ID des zu ändernden Bildes
    // statename = ID des zu ändernden Statuses
    function verstecken(name,iconname,statename)
    {
        if (document.getElementById(name).style.display == 'none') // Wenn es bereits geschlossen ist, dann öffnen wir es hier
        {
            document.getElementById(iconname).src = imagefolder + '/plus.gif'; // Wechseln des Bildes
            document.getElementById(iconname).alt = '+'; // Wechseln  des alt Tags
                document.getElementById(statename).innerHTML = 'Schließen'; // Status ändern
                document.getElementById(name).style.display = 'block'; c
            }
            else // Wenn sie geöffnet ist, dann schließen wir sie eben
            {
               document.getElementById(iconname).src = imagefolder + '/minus.gif'; // Wechseln des Bildes
               document.getElementById(iconname).alt = '-'; // Wechseln  des alt Tags
                document.getElementById(statename).innerHTML = '&Ouml;ffnen'; // Status ändern
                   document.getElementById(name).style.display = 'none'; // Scließen
            }
            return false;
    }
  </script>
</head>
<body>

  <table cellpadding="4" cellspacing="0" border="0" style="border: 1px solid #000000; background-color: #F0F0F0;">
   <tr>
    <td><a href="#" onClick="return verstecken('Text_1','Icon_1','StatusText_1');"><img src="plus.gif" border="0" alt="+" id="Icon_1" /></a></td>
    <td id="StatusText_1">Schließen</td>
   </tr>
   <tr>
    <td colspan="2" id="Text_1">Laldsrfldsfl sf</td>
   </tr>
  </table>
  
  <br />
  
  <table cellpadding="4" cellspacing="0" border="0" style="border: 1px solid #000000; background-color: #F0F0F0;">
   <tr>
    <td><a href="#" onClick="verstecken('Text_2','Icon_2','StatusText_2');"><img src="plus.gif" border="0" alt="+" id="Icon_2" /></a></td>
    <td id="StatusText_2">Schließen</td>
   </tr>
   <tr>
    <td colspan="2" id="Text_2">Laldsrfldsfl sf</td>
   </tr>
  </table>
  
  <br />
  
  <table cellpadding="4" cellspacing="0" border="0" style="border: 1px solid #000000; background-color: #F0F0F0;">
   <tr>
    <td><a href="#" onClick="verstecken('Text_3','Icon_3','StatusText_3');"><img src="plus.gif" border="0" alt="+" id="Icon_3" /></a></td>
    <td id="StatusText_3">Schließen</td>
   </tr>
   <tr>
    <td colspan="2" id="Text_3">Laldsrfldsfl sf</td>
   </tr>
  </table>
  
</body>
</html>
 
Hallo....

Die Daten aus einer Mysql Datenbank abgelesen. Ich weiss nämlich nicht wie viele Beiträge dort sind und in jeden Beitrag wird nicht dieser Post gemacht. Es kann sein das er 2 mal hintereinander kommt, aber es kann auch sein, das er alle 3 Beiträge 1 mal kommt. Also muss er irgendwie die Paramater (Nummerierung) automatisch mahen.
.. jenem kann ich nur sehr bedingt bis garnicht folgen.

Also mal angenommen, du hast x Datensätze, welche du aus ner DB holst.

Dann lass bei der Ausgabe dieser Datensätze einen Zähler mitlaufen, mit diesem kannst du dann eindeutig die einzelnen Elemente Text_?,Icon_?,Statustext_? mit einer ID versehen, indem du das Fragezeichen durch den Wert dieses Zählers ersetzt.
Diesen Wert des Zählers übergibst du ebenfalls der Funktion als Parameter.

Das Ganze sähe dann in etwa so aus... :
Code:
$sql=[dein SELECT];
$nr=0;
while($post=mysql_fetch_array($sql))
{
$nr++;
echo '
<a href="#" onClick="verstecken('+$nr+');"><img src="plus.gif" border="0" alt="+" id="Icon_'+$nr+'" /></a>
....
<td id="StatusText_'+$nr+'">Schließen</td>
...
<td colspan="2" id="Text_'+$nr+'">Laldsrfldsfl sf</td>';
}

Anhand der übergebenen Zahl kann man sich dann im JavaSkript bequem die IDs der einzelnen Elemente zusammensetzen....
die Funktion sähe dann so aus:
Code:
<script type="text/javascript">
<!--
imagefolder = '';

function verstecken(nr)
{
if(!document.getElementById){return;}
show=(document.getElementById('Text_'+nr).style.display=='none')?true:false;
document.getElementById('Icon_'+nr).src=(show)?imagefolder+'/minus.gif':imagefolder+'/plus.gif';
document.getElementById('Icon_'+nr).alt=(show)?'-':'+';
document.getElementById('StatusText_'+nr).innerHTML=(show)?'Schließen':'Öffnen';
document.getElementById('Text_'+nr).style.display=(show)?'block':'none';
return false;
}
//-->
</script>

Wenn du was anderes gemeint hast, müsstest du es noch mal erklären:-(
 
Ich glaube du hast genau das richtige hingeschrieben. Aber das Select findet in einer Php Datei statt und der rest steht in einem Template. Ich habe alles versucht es aber nicht richtig hinbekommen. Sobald ich versuche die nummerierung einzustzen, spricht er das Öffnen nicht mehr an, weil er nicht genau weiss welches eransprechen muss.
 
naja... das musst du schon selbst hinbekommen, ....die Zuordnung der passenden Elemente.

Eine Javscript-Methode "nehmeDasWasIchMeine()" gibts bisher noch nicht:
 

Neue Beiträge

Zurück