Hilfe gesucht für HTML Tabelle und CSS

Hallo,

nachdem das FritzBox-Modul bei mir nicht funktioniert, möchte ich mir die IP-Geräte, die online sind, über Unifi anzeigen lassen (das Unifi-Modul kann ich nicht nutzen, da ich keine DM habe).

Mit folgendem Skript (in Anlehnung an Spoosie)…

$ULI = GetValue(56575); 						// String holen
			
		$clientList = unserialize($ULI);      	      // Array wiederherstellen
        
$htmlBoxID = 59520;

$scriptResult = "";

foreach ($clientList as $element)
        {
            $scriptResult .= "<tr style='height:20px;font-size:12px;'>";
            if (isset($element["hostname"]))   // Nur wenn ein hostname-Index ausgewiesen ist
            {
                $scriptResult .= "<td>".$element["hostname"]."</td>";
                $scriptResult .= "<td style='text-align:center'>".$element["mac"]."</td>";
                $scriptResult .= "<td style='text-align:center'>".$element["ip"]."</td>";
                $scriptResult .= "</div></tr>";
            }
        }

$htmlBox = "";
$htmlBox .= "<table style='width:100%;font-size:14px;'>";
$htmlBox .= "<tr><td style='text-align:left;font-size:12px;' colspan='10'>Letzte Aktualisierung: ".date("H:i:s d.m.Y")."</td></tr>";
$htmlBox .= "<tr style='height:1px;'><td style='background-color:#aaaaaa;' colspan='10'></td></tr>";

if ($scriptResult == "")
	$htmlBox .= "<tr><td style=''>Keine Clients</td></tr>";
else
{
   $htmlBox .= "<tr><th>Name</th><th>MAC</th><th>IP</th></tr>";
	$htmlBox .= $scriptResult;
}

SetValue($htmlBoxID,$htmlBox);

… ist es mir nach langem Probieren gelungen, folgende Ausgabe zu generieren:

Ich habe dann lange weiter versucht, bekomme es aber nicht hin, die Hostnamen unter „Name“ zu bekommen und die Leerzeilen zu eliminieren. Kann bitte jemand helfen, der hier etwas versierter ist?

Vielen Dank und Grüße…!

$scriptResult .= "<td style='text-align:center'>".$element["hostname"]."</td>";
                $scriptResult .= "<td style='text-align:center'>".$element["mac"]."</td>";
                $scriptResult .= "<td style='text-align:center'>".$element["ip"]."</td>";
                $scriptResult .= "</div></tr>";

Damit habe ich den Hostname nun unter „Name“, aber leider sieht das noch immer nicht sehr schön aus, insbesondere sind die Hostnames nicht linksbündig und die drei Spalten sehr ungleich in der Breite. Es wäre schön, wenn jemand insoweit und bezüglich der Leerzeilen einen Hinweis hätte…

Dann mach doch mal in der entsprechenden Spalte ein text-align:left… :smiley:

Vielen Dank, Spoosie, und verstanden (habe ich bei den Überschriften auch machen können) - das sieht besser aus… :wink:

Und hier noch mal das Skript linksbündig und ohne Leerzeilen (falls es mal jemandem hilft…):

     
$htmlBoxID = 59520;        // String-Variable mit Profil Html-Box

$scriptResult = "";

foreach ($clientList as $element)                    //$clientList ist ein Array mit Werten wie hostname, MAC und IP
        {            
            if (isset($element["hostname"]))   // Nur wenn ein hostname ausgewiesen ist
            {
                $scriptResult .= "<tr style='height:20px;font-size:12px;'>";
                $scriptResult .= "<td style='text-align:left'>".$element["hostname"]."</td>";
                $scriptResult .= "<td style='text-align:left'>".$element["mac"]."</td>";
                $scriptResult .= "<td style='text-align:left'>".$element["ip"]."</td>";
                $scriptResult .= "</div></tr>";
            }
        }

$htmlBox = "";
$htmlBox .= "<table style='width:100%;font-size:14px;'>";
$htmlBox .= "<tr><td style='text-align:left;font-size:12px;' colspan='10'>Letzte Aktualisierung: ".date("H:i:s d.m.Y")."</td></tr>";
$htmlBox .= "<tr style='height:1px;'><td style='background-color:#aaaaaa;' colspan='10'></td></tr>";

if ($scriptResult == "")
	$htmlBox .= "<tr><td style=''>Keine Clients</td></tr>";
else
{
   $htmlBox .= "<tr><th style='text-align:left'>Name</th><th style='text-align:left'>MAC</th><th style='text-align:left'>IP</th></tr>";
	$htmlBox .= $scriptResult;
}

SetValue($htmlBoxID,$htmlBox);

Danke noch einmal, Spoosie, für das Grundskript und mir auf die Sprünge geholfen zu haben (es kann ja einfach sein, wenn man es dann weiß…)!