Problem mit Tooltip

xony

Erfahrenes Mitglied
Hallo Leute,

ich habe ein Tooltip Script in Javascript.
Jetzt möchte ich die Tooltips aber mit dynamischen Inhalten innerhalb von PHP füllen.
Allerdings habe ich das Problem das nur Zahlen akzeptiert werden.
In Javascript kenne ich mich leider nicht aus.

Vielleicht kann ja mal kurz jemand gucken und mir versuchen zu helfen.

Hier der Aufruf innerhalb von PHP wie es funktioniert und als zweites wie es nicht funktioniert.

1. (So funktionierts)
PHP:
$text = '1234567890';

<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $new_products['products_id']) . '" onmouseover="return overlib('.$text.');" onmouseout="return nd();">' . tep_image(DIR_WS_IMAGES . $new_products['products_image'], $new_products['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a>


2. (und so nicht)
PHP:
$text = 'hier steht der text';

<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $new_products['products_id']) . '" onmouseover="return overlib('.$text.');" onmouseout="return nd();">' . tep_image(DIR_WS_IMAGES . $new_products['products_image'], $new_products['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a>


Sobald Buchstaben als Inhalt der Funktion return overlib angegeben werden geht nix mehr.
Warum das ?:

Hat jemand einen Tip.
 
Befinden sich in diesem Text Quotes oder Zeilenumbrüche?

Wenn ja... die Quotes müssen escaped werden und die Zeilenumbrüche durch <br> oder ein Leerzeichen ersetzt werden..
 
Hallo Sven,

es funktioniert leider auch nicht wenn der Text nur aus einem Buchstaben besteht ohne Leerzeichen.
Das Phänomen tritt bei allen Tooltip Scripten auf die im netz zur Verfügung stehen.

Was bedeutet Escapen und vor allem wie mach ich das?
Ein beispiel wäre nicht schlecht.

DAnke.

[EDIT] Escapen heist wohl ein Schrägstrich vor einem hochkomma, dann funktioniert aber das Javascript nicht mehr. Wie gesagt es ist alles innerhalb von PHP
 
Zuletzt bearbeitet:
Ersetzte das
Code:
return overlib('.$text.')

durch
Code:
return overlib(\''.$text.'\')

Ergänzend zu dem, was ich im vorrangegangenen Posting erwähnte.....
Singlequotes sollten jetzt am besten komplett durch was anderes ersetzt werden, sonst wird es etwas kompliziert mit dem Escapen.
 
Hallo,

ja Super jetzt klappt eigentlich alles.
Da sich alles innerhalb von PHP abspielt musste ich mit der Funktion str_replace doppelte und einfache hochkommas rausfiltern.

Jetzt macht mir nur noch eines Probleme und zwar sobald ich im Text eine Leerzeile ohne <br> einfüge, dann funktioniert das Javascript wieder nicht.
An was liegt das?.

Da entsteht dann doch ein ASCII Steuerzeichen das man doch eigentlich auch rausfiltern kann oder nicht?.

Oder warum kommt Javascript damit nicht klar?!.

wenn es da noch eine Möglichkeit gäbe wäre das Ergebniss mehr als Perfekt.

Gruss und vielen DAnk.
 
Bei der Javascript-Anweisung muss sich alles in einer Zeile befinden.
Wenn du dort eine Leerzeile erzeugen willst, machs mit \n\n(wohlgemerk im Javascriptcode...dies muss so also im fertigen Dokument stehen)
 

Neue Beiträge

Zurück