Petrosch: mouseover+bildauswahl

Hallo liebe html-Gemeinde!
Ich moechte mit einem Mouse-Over ein Logo anzeigen.
Wenn kein Logo hinterlegt ist, soll ein Dummy-Logo angezeigt werden.
Jetzt sind das über 20000 Datensätze und nur wenige haben ein echtes Logo.
Heisst das, dass ich 19100 Dummy-Logos erzeugen muss?
Oder kann man eine Abfrage einbauen?
Momentan habe ich es so gelöst, so läuft es, aber es gibt viel zu viele Dummys bei der Lösung.

  
<td class="ergebniszeile"><a onmouseover="Tip('<img src=&quot;logo/<%$adr_id%>_1.jpg&quot;>', TEXTALIGN, 'center')" onmouseout="UnTip()" href="detail.php?a_id=<%$adr.a_id%>"><%$adressen.a_name%></a></td>  

Es wird die dazugehörige ID_1.jpg benutzt, wenn ein Logo da ist!
Es wird die dazugehörige ID_2.png benutzt, wenn KEIN Logo da ist!

Wie kann man so etwas lösen?

  1. Hallo Petrosch!

    du könntest immer ein und dasselbe Dummy- Bild anzeigen und dann das ID- Bild laden. Wenn es da ist (onload), ersetzt du das Dummy- Bild.

    Wenn das ID- Bild nicht kommt, bleibt das Dummy- Bild stehen.

    Kalle

    1. Hallo Petrosch!

      du könntest immer ein und dasselbe Dummy- Bild anzeigen und dann das ID- Bild laden. Wenn es da ist (onload), ersetzt du das Dummy- Bild.

      Wenn das ID- Bild nicht kommt, bleibt das Dummy- Bild stehen.

      Kalle

      Ja, so etwas habe ich mir auch überlegt, weiß aber leider nicht, wie ich das umsetzen soll ...
      Natürlich wäre das viel einfacher als ca.20000 Dummy-Bilder zu erzeugen, in denen immer das Gleich drinsteht - schwachsinnig sogar.

  2. Lieber Petrosch,

    wenn in Deinen Datensätzen ein Logo eingetragen ist, dann wird das angezeigt. Wenn keines eingetragen ist (auch kein "Dummy"), dann wird das Dummy-Logo angezeigt. Dazu reicht ein Dummy-Logo für alle.

    <td class="ergebniszeile"><a onmouseover="Tip('<img src=&quot;logo/<%$adr_id%>_1.jpg&quot;>', TEXTALIGN, 'center')" onmouseout="UnTip()" href="detail.php?a_id=<%$adr.a_id%>"><%$adressen.a_name%></a></td>

    Ich finde den onmouseover und Konsorten nicht gut. Was soll das Attribut im HTML-Code, wenn User ohne verfügbares JavaScript daherkommen? Eine bessere Methode wäre es, dem <a>-Element eine Klasse zuzuweisen, die dann später von einem JavaScript erkannt und verarbeitet wird. In der ID des <a>-Elements könnte man dann den Dateinamen (ohne Endung?) eintragen, oder auch in Deinem Falle die ID als Dateinamen direkt verstehen.

    <!-- mit echtem Logo -->  
    <td class="ergebniszeile"><a class="logo-link" id="ax_9418b_keine_ahnung_97" href="detail.php?a_id=<%$adr.a_id%>"><%$adressen.a_name%></a></td>  
    <!-- mit Dummy -->  
    <td class="ergebniszeile"><a class="logo-link" id="dummy" href="detail.php?a_id=<%$adr.a_id%>"><%$adressen.a_name%></a></td>
    

    Ein JavaScript, das nach dem Laden der Seite automatisch ausgeführt wird, holt sich dann alle <a>-Elemente dieser Klasse ("logo-link") und verleiht ihnen die benötigten Eventhandler dynamisch. Dabei wird als Logo-Dateiname einfach an die $adr_id ein ".jpg" gehängt - und als "dummy.jpg" hast Du dann Dein Ersatzbild.

    Wie das mit dem JavaScript geht, kannst Du hier genauer betrachten:
    * Autostart eines JavaScriptes
    * Elemente mit einer bestimmten Klasse ansprechen: getElementsByClassName
    * http://de.selfhtml.org/javascript/sprache/eventhandler.htm@title=Eventhandler

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
  3. Hallo nochmal,

    ich habe gerade gesehen, dass ich eine nicht vollständige Zeile als Source-Code gepostet habe.
    So ein Mist.
    Das kommt davon, dass man 3 unterschiedliche Rechner hat und ebensoviele unterschiedliche Versionen.
    Muss mal schauen, ob ich an die Zeile rankomme, die ich meinte ...