Bilder abwechselnd je mehrere Sekunden anzeigen

Hallo Experten,

ich habe auch nach längerer Suche im Netz nichts Passendes für mein Problem finden können. Es geht um Folgendes:

Ich habe eine PHP-generierte Seite, auf der mehrere Bilder zu einer Grafik zusammengesetzt werden. Je nach Eintrag in der angebundenden Datenbank werden dabei auch in einem bestimmten Bereich mehrere Buchstaben-Grafiken hintereinander gesetzt, sodass sich ein text ergibt. Es existieren also Bilder in der Form A.gif, B.gif, C.gif, usw.

Nun ist die Breite begrenzt und der Text manchmal zu lang für das „Textfeld“ in der Grafik. Daher wird momentan nach 30 Sekunden eine zweite Seite aufgerufen, die eigentlich identisch ist, aber an der Stelle des „Textfeldes“ den restlichen Text anzeigt (wenn der Text kurz genug war, wird der ursprüngliche Text weiterhin angezeigt).
Natürlich ist das eine Notlösung und nicht sehr elegeant. Schließlich wird beim Laden der zweiten Seite die gesamte Grafik kurzzeitig auseinander gerissen, um sich neu zusammenzusetzen.

Daher würde ich gern eine Möglichkeit fidnen, gleich auf der ersten Seite beide Bilder (also für Teil 1 des Textes und Teil 2 des Textes) einzubauen und diese einfach in einem gewissen Zeitabstand (30 Sekunden) abwechselnd anzeigen zu lassen.

Kennt da jemand eine Möglichkeit?
Mir wäre damit sehr geholfen.

Die bisherigen Funde im Netz waren stets nicht umsetzbar, was sich vielleicht anhand meines Quelltextes verstehen lässt:

######################################################################

<?PHP include ("db.php");
$query = "SELECT \* FROM veranstaltungen"; $result = mysql\_query($query); ?\> <?PHP while ($line = mysql_fetch_array($result)) { ?><?PHP $heute = date("d.m.Y");
$heutezahl = substr($heute, 6, 4).substr($heute, 3, 2).substr($heute, 0, 2);

?><?PHP $datumzahl = substr($line[Datum], 6, 4).substr($line[Datum], 3, 2).substr($line[Datum], 0, 2);
?><?PHP if($datumzahl >= $heutezahl)
{

?><?PHP # Code für Blinklicht
if($datumzahl == $heutezahl)
{
?><?PHP }
else
{
if($datumzahl {
?><?PHP }
else
{
if(substr($datumzahl, 4, 2) +1 == substr($heutezahl, 4, 2))
{
if(substr($datumzahl, 6, 2)+30-substr($heutezahl, 6, 2) {
?><?PHP }
else
{
?><?PHP }
}
else
{
if(substr($heutezahl, 4, 2) == 12)
{
if(substr($datumzahl, 6, 2)+31-substr($heutezahl, 6, 2) {
?><?PHP }
else
{
?><?PHP }
}
else
{
?><?PHP }
}
}
}

Ende Code für Blinklicht

?><?PHP ?><?PHP ?><?PHP # Code für Datumsanzeige
?\><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP # Ende Code für Datumsanzeige

?><?PHP ?><?PHP ?><?PHP # Code für Uhrzeitanzeige
?\><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP # Ende Code für Uhrzeitanzeige

?><?PHP ?><?PHP ?><?PHP # Code für Flugnummernanzeige
?\><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP # Ende Code für Flugnummernanzeige

?><?PHP ?><?PHP ?><?PHP $zweitezeile = substr($line[Text2], 0, 1);
if($zweitezeile == „-“)
{

Code für Textanzeige

?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP # Ende Code für Textanzeige
}
else
{

Code für Textanzeige

?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP ?><?PHP # Ende Code für Textanzeige
}

?><?PHP ?><?PHP ?><?PHP # Code für Statusanzeige
?><?PHP # Ende Code für Statusanzeige

?><?PHP ?>

<?PHP }
?\><?PHP }
?\> [zum Veranstaltungskalender](http://www.familyair.de/index.php?sid=) <?PHP mysql_free_result($result);
mysql\_close(); ?\> ###################################################################### Entscheidend ist der Bereich, in dem "Text2" angezeigt wird. Hier wird momentan in der anzeige3.php eben dann "Text" angezeigt. Für die Neugierigen gibt es hier auch meine Textversion - da sieht man, wie alles aussieht im Moment: [www.lucas.sichardt.de.be/anzeige.php](http://www.lucas.sichardt.de.be/anzeige.php) Vielen Dank schon jetzt für jeden Hilfeversuch! Gruß, Lucas

Hi,
ist das nicht ein preload Problem? Wenn alle Bilder geladen sind sieht es doch perfekt aus.
Ich würd vorschlagen:

  • gib allen images eine width="" und eine height="" (dann weiß der Browser gleich wie breit die grafiken sein sollen

  • lade alle Bilder am Beginn der Seite z.b. so

    foreach ($alpha as $a)
    {
    echo „“;
    }

Moinmoin,

vielen Dank für die Hilfe. Der Tipp mit den Maßangaben war schonmal Gold wert. Damit zerreißt es die Grafik nicht imemr gleich komplett. Das war gerade beim IE ein Problem, während es zum Beispiel bei Opera absolut kein Problem war.
Eigentlich hätte ich auf die Idee auch selbst kommen können - aber manchmal sieht man solche Dinge nicht gleich.

Was das Laden der Grafiken am Beginn der Seite angeht, verstehe ich leider den Code nicht ganz. Ich muss vielleicht dazu sagen, dass ich Neuling auf dem Gebiet bin und das aktuelle Projekt meine erste PHP-Seite ist.

Den Code habe ich jedenfall noch nicht so anpassen und einbauen können, dass es mir nicht eine Fehlermeldung ausgegeben hätte.

Könntest du mir das kurz erläutern?
Wäre sehr nett.

Vielen Dank schon jetzt!

Gruß,

Lucas

Sorry, das war doch zu ungetestet … :smile:
Hier die „bessere“ Lösung:

for($i = 65; $i ";
} 

Soll dann ausgeben:

d.h. "lade mal alle *.gifs ohne sie wirklcih anzuzeigen … "
(natürlich könntest einfach alle images so laden … aber das is fad … :smile:

lg

Hallo,

das ist auch genial. Wegen der Höhe und Breite Null zeigt er sie dann nicht an. Super Sache. Vielen Dank ndafür. Damit bin ich mit dem Projekt jetzt deutlich weiter gekommen!

Vielen, vielen Dank!

Viele Grüße,

Lucas