Failing JavaScript onMouseOver event
I want to show onmouseover
alert in PHP files but it fails. Please help me.
<?php
$a = '<a href=# onMouseover=alert(';
$a .= 'Für die Mitnahme von Sportgepäck (Scuba/Diving/Golf Equipment) bis'.
' 15 KG ist es empfehlenswert dieses vorab zu buchen, da sonst am Check-In '.
'Schalter die normalen Übergewichtsraten pro KG berechnet werden ('.
'unabhängig von Ihrer Gepäckauswahl – die Auswahl des aufzugebenden Gepäcks '.
'beinhaltet nicht das Sportgepäck)';
$a .= ')>LINK DESCRIPTION</a>开发者_C百科;';
echo $a;
?>
There is no need for PHP here. Just write HTML:
<a href="#" onmouseover="alert('looong string...')">LINK DESCRIPTION</a>
It is much easier to read and to debug.
But an explanation for why your code does not work: You are messing up with quotes.
This is the HTML you actually want :
<a href="#" onmouseover="alert('my text');">LINK DESCRIPTION</a>
Note the quotes around each attribute value and the single quote around the text of the alert. To obtain this in PHP, you can do it by escaping the quotes :
$a='<a href="#" onmouseover="alert(\'';
$a.='Für die [...] Sportgepäck)';
$a.= '\')">LINK DESCRIPTION</a>';
Escape the string in the alert
, like this:
<?php
$a = '<a href=# onMouseover=alert(';
$a .= '\'Für die Mitnahme von Sportgepäck (Scuba/Diving/Golf Equipment) bis 15 KG ist es empfehlenswert dieses vorab zu buchen, da sonst am Check-In Schalter die normalen Übergewichtsraten pro KG berechnet werden (unabhängig von Ihrer Gepäckauswahl – die Auswahl des aufzugebenden Gepäcks beinhaltet nicht das Sportgepäck)\'';
$a .= ')>LINK DESCRIPTION</a>';
echo $a;
?>
<?php
$a = '<a href=# onmouseover=alert("';
$a .= 'Für die Mitnahme von Sportgepäck (Scuba/Diving/Golf Equipment) bis 15 KG ist es empfehlenswert dieses vorab zu buchen, da sonst am Check-In Schalter die normalen Übergewichtsraten pro KG berechnet werden (unabhängig von Ihrer Gepäckauswahl – die Auswahl des aufzugebenden Gepäcks beinhaltet nicht das Sportgepäck)';
$a .= '")>LINK DESCRIPTION</a>';
echo $a;
?>
Instead of printing HTML code in PHP, escape PHP block:
<?php
// some PHP code and exit PHP block
?>
<a href="#" onmouseover="alert('Für die Mitnahme.....')">LINK DESCRIPTION</a>
<?php
// enter PHP block again
?>
However the problem was in missing apostrophes in alert
function.
Was:
alert(some text)
should be:
alert('some text')
If you miss apostrophes, JavaScript treats your text as a variables.
<?php $a='Für die Mitnahme von Sportgepäck (Scuba/Diving/Golf Equipment) bis 15 KG ist es empfehlenswert dieses vorab zu buchen, da sonst am Check-In Schalter die normalen Übergewichtsraten pro KG berechnet werden (unabhängig von Ihrer Gepäckauswahl – die Auswahl des aufzugebenden Gepäcks beinhaltet nicht das Sportgepäck)';
echo '<a href=\"#\" onmouseover=\"alert(\"'.$a.'\")\">LINK DESCRIPTION</a>';
Just simple like that ...
精彩评论