Image für Tooltip in xsl darstellen

BlazZ

Mitglied
Hallo zusammen, ich hoffe das ihr mir helfen könnt, denn ich bin schon ein wenig verweifelt.

Ich benutze den Tooltip von Walter Zorn (http://www.walterzorn.de/tooltip/tooltip.htm) und versuche diesen In xsl darzustellen. Das hat auch alles soweit ganz gut geklappt. Was ich aber nicht schaffe, ist diese funktion in xsl darzustellen.

Code:
onmouseover="Tip('Text mit <img src=&quot;pics/image.jpg&quot; width=&quot;60&quot;>Bild.')"

Den Tooltip selber bekomme ich dargestellt, aber ich schaffe es einfach nicht das Image in xsl darzustellen. Laut Walter muss das Bild im Image-Tag mit &quot; oder /' gearbeitet werden um die Src und die Weite festzulegen.

Ich selber hatte es so probiert:

Code:
	          <xsl:element name="img"> 
				 <xsl:attribute name="src">
					&quot;/img/Mustermann.jpg&quot; 
				 </xsl:attribute>
				<xsl:attribute name="width">
					&quot;60&quot;
				</xsl:attribute>
		   </xsl:element>

Ich bin euch für jede Hilfe dankbar, denn ich hänge schon den ganzen Nachmittag an dem Problem. Danke.

mfg
 
Zuletzt bearbeitet:
Moin,

du erzeugst da ein img-element, du brauchst aber ein attribute, mit dem Namen onmouseover und
Code:
Tip('Text mit <img src=&quot;pics/image.jpg&quot; width=&quot;60&quot;>Bild.')
als Inhalt.
 
Sorry mein Fehler, ich hätte besser den ganzen Quelltext posten sollen. Ich wollte euch aber mit Quelltext nicht erschlagen und alle verscheuchen ^^.

Also ich erzeuge mit mit dem attribute mouseover schon den tooltip. Das klappt auch nur wenn ich das Bild darstellen möchte dann funktioniert das nicht.

Code:
<a>
      	<xsl:attribute name="href">
	<xsl:value-of  select="website"/>												
								</xsl:attribute>
								<xsl:attribute name="onmouseover">
								<xsl:text>Tip('</xsl:text>
								<xsl:element name="img"> 
									 <xsl:attribute name="src">
									 	&quot;/img/Mustermann.jpg&quot; 
									</xsl:attribute>
									<xsl:attribute name="width">
										&quot;60&quot;
									</xsl:attribute>
								
								</xsl:element>
								 <xsl:text> Raum: </xsl:text>			
							<xsl:value-of select="room" />
							<xsl:text> Telefonnummer:</xsl:text>									
							<xsl:value-of select="tel" />
								<xsl:text>');</xsl:text>
							</xsl:attribute>	
							<xsl:attribute name="onmouseout">
								<xsl:text>UnTip();</xsl:text>
							</xsl:attribute>	
								<xsl:value-of select="titel"/>
								<xsl:value-of select="vorname"/>
								<xsl:value-of select="nachname"/>
							</a>

Den ToolTip mit der Raumnummer und der Telefonnummer bekomme ich angezeigt aber nicht das Bild. Eigentlich ist die Darstellung des einen Bildes noch nicht mal mein Ziel.

In der XML Datei die ich auslese habe ich den Pfad zu den jeweiligen images festgelegt. Ich wollte diese eigentlich Zeilenweise beim Mouseovereffekt auslesen. Das ist das eigentlich ziel. Aber ich schaffe es ja nicht mal ein normales Image im Tooltip darzustellen. Deswegen auch der Zwischenschritt

Die XML Datei ist so aufgebaut

Code:
<personen>
    <person>
<titel>Herr</titel>
<vorname>Max</vorname>
<nachname>Mustermann</nachname>
<img src="/img/Mustermann1jpg" >
<room>100</room>
<tel>000001234</tel>
<website>http://www.mustermann.de</website>

    </person>
</personen>

Ich bin euch für eure hilfe dankbar ^^
 
Jo, das meine ich ja, derselbe Fehler.

Dort(Tip() ) wird lediglich ein String ewartet, du erzeugst jedoch ein Element.
<xsl:attribute name="onmouseover"> darf nur Zeichen enthalten, sonst nichts.



Ungefähr so sollte es hinhauen:
Code:
<xsl:template match="personen/person">
  <xsl:element name="a">
    <xsl:attribute name="href">
      <xsl:value-of  select="website"/>												
    </xsl:attribute>
    <xsl:attribute name="onmouseover">
      <xsl:text><![CDATA[ Tip('Text mit<img src="]]></xsl:text>
      <xsl:value-of select="img/@src"/>
      <xsl:text><![CDATA["> Bild.')]]></xsl:text>
    </xsl:attribute>
    <xsl:attribute name="onmouseout">
      <xsl:text>UnTip()</xsl:text>
    </xsl:attribute>
    <xsl:value-of select="titel"/> 
    <xsl:value-of select="vorname"/> 
    <xsl:value-of select="nachname"/> 
  </xsl:element>
</xsl:template>
 
ah super vielen Dank für die schnelle Hlfe

Hast du vielleicht noch eine Idee wie ich die in der xsl Datei festlege, dass ein Default Image angezeigt werden soll wenn kein Bild in der XSL Datei angegeben wird ?
 
Jo, für soetwas gibt es xsl:choose
Code:
<xsl:template match="personen/person">
  <xsl:variable name="image_exists" select="count(img)" />
  <xsl:element name="a">
    <xsl:attribute name="href">
      <xsl:value-of  select="website"/>												
    </xsl:attribute>
    <xsl:attribute name="onmouseover">
      <xsl:text><![CDATA[ Tip('Text mit<img src="]]></xsl:text>
      <xsl:choose>
        <xsl:when test="$image_exists = 1">
          <xsl:value-of select="img/@src"/>
        </xsl:when>
        <xsl:otherwise>
          <xsl:text>http://www.testserver.de/bild.gif</xsl:text>
        </xsl:otherwise>
      </xsl:choose>
      <xsl:text><![CDATA["> Bild.')]]></xsl:text>
    </xsl:attribute>
    <xsl:attribute name="onmouseout">
      <xsl:text>UnTip()</xsl:text>
    </xsl:attribute>
    <xsl:value-of select="titel"/> 
    <xsl:value-of select="vorname"/> 
    <xsl:value-of select="nachname"/> 
  </xsl:element>
</xsl:template>

Es wird erstmal eine Variable erstellt, als Wert erhhält sie die Anzahl der <img>-Elemente(rot markiert)

Dann(grün markiert) kommt xsl:choose...das ist ein if/else-Konstrukt.

Wenn(when) die Variable den Wert 1 hat, wird der Inhalt des src-Attributes des <img> verwendet , andernfalls(otherwise)...die Alternative, hier http://www.testserver.de/bild.gif
 

Neue Beiträge

Zurück