# Div-Inhalt dynamisch ändern!



## moistwanted (11. März 2007)

Hi Leute!

Ich habe eine Tabelle mit Usern nun will ich rechts von der Tabelle Informationen zu einem dieser Users anzeigen.

Ich will das so machen, dass man auf den User klick und dann wird per Javascript die Informationen angezeigt werden!

Das Ganze soll so ungefähr wie beim Tutorial von RehW werden:
http://www.tutorials.de/forum/javascript-tutorials/247322-div-inhalt-wechseln.html

Das Problem ist, dass die Anzahl der User dynamisch aus einer Datenbank ausgelesen werden. Ich weiß also vorher nicht wie viele das sind!
Wie kann ich also dynamisch machen?


----------



## kroschel (11. März 2007)

Ich hab mir zwar nicht das Beispiel angeschaut, aber ich würde das wie folgt realisieren (wenn ich es richtig verstanden habe); Beim klicken (wahrscheinlich auf link für weitere Informationen) eine eindeutige id an der Funktion übergeben (vorzugsweise primary key) und dann per Javascrip die Daten auslesen und anzeigen.


----------



## moistwanted (11. März 2007)

Mach das Ganze jetzt anders!
Ich blende einfach Teile ein und aus!

Ich hab jetzt divs die heißen: show_user_1, show_user_2, show_user_3 usw.

Wie kann ich jetzt bei document.getElementById('show_user_?i?').style.display='block';
das i richtig reinkriegen, das die Teile aus oder eingeblendet werden?


```
function show_user(user)
{
	for(i = 0; i < !ANZAHL!; i++)
	{
   	if(i==user)
      {
      	document.getElementById('show_user_?i?').style.display='block';
      }
      else
      {
	   	document.getElementById('show_user_?i?').style.display='none';
      }
	}
}
```

EDIT:
Habs jetz hingekriegt:

```
function show_user(user)
{
	for(i = 1; i <= {/literal}{$member|@count}{literal}; i++)
	{
   	if(i==user)
      {
      	var text = 'show_user_' + i
      	document.getElementById(text).style.display='block';
      }
      else
      {
      	var text = 'show_user_' + i
	   	document.getElementById(text).style.display='none';
      }
	}
}
```


----------



## kroschel (11. März 2007)

hi...
du baust doch deine tabelel per php auf, oder?
das hast du dann in etwa sowas:


```
...
while ($row = mysql_fetch_assoc($ergebnis)) {
// hier stehen die einzelnen Spalten
//einfach z.b. so:
echo "
<tr id='SpaltenId".$row["id"]."'>
<td>"".$row["username"]."</td>
         <td><span style='cursor: pointer; text-decoration: underline;  '
            onclick=\"showInfo(".$row["id"].")\">
                zeige mir infos
        </span></td>
</tr>
}
```

die Javascript Funktion showInfo() bekommt nun die eindeutige id übergeben und durch den Aufbau stellst du sicher, dass die id die richtige ist.

Hof es ist verständlich, der dummycode kann einige Flüchtigkeitsfehler (Fehlendes ;, oder ") ausweisen.

mfg
Marcel


----------



## Julian Maicher (11. März 2007)

Hässlich .. ich würde es mit Ajax machen. Informier dich darüber am besten mal ..


----------



## kroschel (11. März 2007)

ich hatte mir gedacht, dass showInfo() dann den ajax-aufruf startet und die User-Infos im Layer schreibt.


----------



## moistwanted (12. März 2007)

Ajax wäre natürlich viel besser!

Kann mir jemand ne Link zu einem guten Tutorial geben?
Hab nämlich noch keine Ahnung wie das Ganze funktioniert!


----------



## kroschel (12. März 2007)

google hilft 
http://developer.mozilla.org/de/docs/AJAX:Getting_Started
online buch: http://www.teialehrbuch.de/AJAX1-KK/


----------

