Tyvärr inte heller detta var lösningen på mitt problem
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in ...
26 svar · 1 506 visningar · startad av peroerik · sida 2 av 2
Posta url till sidan eller komplett source inklusive javascript. Det är hopplöst att försöka felsöka så här...
En förenkling för att belysa problemet ytterligare
Hittills ligger sidan endast på en lokal server, alltså inte publikt.
Här är utdrag ur min kod som visar vad som fungerar och inte fungerar:
----
<?php
$falt1="MouseOverTEST";
-----
// Sök tidigare visade filmer sortera på visningsdatum
$result2=mysql_query("SELECT * FROM film WHERE visdat < $datum ORDER BY visdat ASC");
?>
----
<br>
<h2>Filmer visade tidigare under terminen.</h2><br>
<table border="0" cellpadding="10">
<tr><td><b>Visningsdatum </td><td><b>Filmtitel</td></tr>
<?php
while($rad=mysql_fetch_row($result2)){
echo "<tr><td>".$rad[0]."</td><td>".$rad[1]."</td></tr>";
}
?>
</table>
-------
Ovanstående är där jag slutligen vill applicera onMouseover
-------
<br>
Nedan är bara test för att se vad som funkar och inte funkar<br>
<hr>
<?php echo $falt1;?> <div onMouseover="ddrivetip('Denna text ska visas i en ruta med gul bakgrund om Mouseover fungerar', 'yellow', 300";
onMouseout="hideddrivetip()"></div>
<br>
<!-- nedan är två Mouseover som fungerar. Den ovan fungerar inte -->
Denna text vill jag göra Mouseover på <div onMouseover="ddrivetip('Denna text visas om Mouseover fungerar, i en gul ruta', 'yellow', 100)";
onMouseout="hideddrivetip()" ></div>
<br>
<?php
echo "<a href=\"http://dn.se\" onMouseover=\"ddrivetip('Dagens Nyheters Webbplats', 'yellow', 250)\";
onMouseout=\"hideddrivetip()\">Dagens Nyheter</a>
"; ?>
Tittar man på detta i browsern med visa källa ser det ut som följer:
----
<tr><td>2008-07-01</td><td>Första filmen</td></tr><tr><td>2008-07-08</td><td>Andra filmen för sommaren</td></tr><tr><td>2008-07-10</td><td>denna titel ska visa hur lång en filmtitel kan få vara ---------------------------------------------</td></tr><tr><td>2008-07-16</td><td>Filmen</td></tr><tr><td>2008-07-17</td><td>Denna fil har en lång och besvärlig titel</td></tr><tr><td>2008-07-18</td><td>Nu ska vi ta en ännu längre titel på denna film</td></tr><tr><td>2008-07-19</td><td>Nu ska vi ta en ännu längre titel på denna film</td></tr>
</table>
<br>
Nedan är bara test<br>
<hr>
MouseOverTEST <div onMouseover="ddrivetip('Denna text ska visas i en ruta med gul bakgrund om Mouseover fungerar', 'yellow', 300";
onMouseout="hideddrivetip()"></div>
<br>
<!-- nedan är två Mouseover som fungerar. Den ovan fungerar inte -->
Denna text vill jag göra Mouseover på <div onMouseover="ddrivetip('Denna text visas om Mouseover fungerar, i en gul ruta', 'yellow', 100)";
onMouseout="hideddrivetip()" ></div>
<br>
<a href="http://dn.se" onMouseover="ddrivetip('Dagens Nyheters Webbplats', 'yellow', 250)";
onMouseout="hideddrivetip()">Dagens Nyheter</a>
------------
Den kod som jag angivit bara är för test kan ju köras av någon som vill försöka hitta en lösning på detta.
Javascript finns på http://www.dynamicdrive.com/dynamicindex5/dhtmltooltip.htm
Tack än en gång för era försök.
Förenklat test
Jag har nu gjort en förenklad testfil för att belysa problemet. Jag har i detta helt koppat bort databasen.
Resultatet kan man se på http://www.skandiaseniorerna.se/utv/mtest2.php
Nedan följer hela filen som körs där:
----
<?php
$datum=date(Ymd);
$falt1="MouseOverTEST med PHP-variabel";
$falt2='Denna text som ligger i en variabel ska visas i en ruta med gul bakgrund om Mouseover fungerar';
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" >
<html>
<head>
<meta http-equiv="Content-Language" content="sv">
<meta name="author" content="Per-Ola Eriksson">
<title>Mtest2</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
#dhtmltooltip{
position: absolute;
width: 150px;
border: 2px solid black;
padding: 2px;
background-color: lightyellow;
visibility: hidden;
z-index: 100;
/*Remove below line to remove shadow. Below line should always appear last within this CSS*/
filter: progid:DXImageTransform.Microsoft.Shadow(color=gray,direction=135);
}
</style>
</head>
<body>
<div id="dhtmltooltip"></div>
<script type="text/javascript">
/***********************************************
* Cool DHTML tooltip script- © Dynamic Drive DHTML code library (https://www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/
var offsetxpoint=-60 //Customize x offset of tooltip
var offsetypoint=20 //Customize y offset of tooltip
var ie=document.all
var ns6=document.getElementById && !document.all
var enabletip=false
if (ie||ns6)
var tipobj=document.all? document.all["dhtmltooltip"] : document.getElementById? document.getElementById("dhtmltooltip") : ""
function ietruebody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}
function ddrivetip(thetext, thecolor, thewidth){
if (ns6||ie){
if (typeof thewidth!="undefined") tipobj.style.width=thewidth+"px"
if (typeof thecolor!="undefined" && thecolor!="") tipobj.style.backgroundColor=thecolor
tipobj.innerHTML=thetext
enabletip=true
return false
}
}
function positiontip(e){
if (enabletip){
var curX=(ns6)?e.pageX : event.clientX+ietruebody().scrollLeft;
var curY=(ns6)?e.pageY : event.clientY+ietruebody().scrollTop;
//Find out how close the mouse is to the corner of the window
var rightedge=ie&&!window.opera? ietruebody().clientWidth-event.clientX-offsetxpoint : window.innerWidth-e.clientX-offsetxpoint-20
var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint : window.innerHeight-e.clientY-offsetypoint-20
var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : -1000
//if the horizontal distance isn't enough to accomodate the width of the context menu
if (rightedge<tipobj.offsetWidth)
//move the horizontal position of the menu to the left by it's width
tipobj.style.left=ie? ietruebody().scrollLeft+event.clientX-tipobj.offsetWidth+"px" : window.pageXOffset+e.clientX-tipobj.offsetWidth+"px"
else if (curX<leftedge)
tipobj.style.left="5px"
else
//position the horizontal position of the menu where the mouse is positioned
tipobj.style.left=curX+offsetxpoint+"px"
//same concept with the vertical position
if (bottomedge<tipobj.offsetHeight)
tipobj.style.top=ie? ietruebody().scrollTop+event.clientY-tipobj.offsetHeight-offsetypoint+"px" : window.pageYOffset+e.clientY-tipobj.offsetHeight-offsetypoint+"px"
else
tipobj.style.top=curY+offsetypoint+"px"
tipobj.style.visibility="visible"
}
}
function hideddrivetip(){
if (ns6||ie){
enabletip=false
tipobj.style.visibility="hidden"
tipobj.style.left="-1000px"
tipobj.style.backgroundColor=''
tipobj.style.width=''
}
}
document.onmousemove=positiontip
</script>
<h1>Test av Mouseover</h1><br>
<hr>
<body>
<br>
För muspekaren över en text nedan för mer info<br><br>
<hr>
<b>Följande två Mouseover fungerar INTE. I dessa använder jag PHP-variabler </b><br><br>
<?php echo $falt1;?> <div onMouseover="ddrivetip('Denna text ska visas i en ruta med gul bakgrund om Mouseover fungerar', 'yellow', 300";
onMouseout="hideddrivetip()"></div>
<br>
Denna text vill jag också göra Mouseover på, men texten hämtas inte. <div onMouseover="ddrivetip('$falt2', 'yellow', 100)";
onMouseout="hideddrivetip()" ></div>
<br><br><br>
<b>Nedan är tre Mouseover som fungerar. </b><br><br>
Denna text vill jag göra Mouseover på <div onMouseover="ddrivetip('Denna text visas om Mouseover fungerar, i en gul ruta', 'yellow', 100)";
onMouseout="hideddrivetip()" ></div>
<br>
<?php
echo "<a href=\"http://dn.se\" onMouseover=\"ddrivetip('Dagens Nyheters Webbplats', 'yellow', 250)\";
onMouseout=\"hideddrivetip()\">Dagens Nyheter</a>
"; ?>
<br><br>
<?php
$address="http://dn.se";
$text= "Lite text om DN, hämtad från en PHP-variabel";
echo "<a href='$address' onmouseover=\"ddrivetip('$text','yellow', 100)\";
onMouseout=\"hideddrivetip()\">Dagens Nyheter</a>";
?>
</body>
</html>
Du får lägga texten inom diven du har onmouseover på...
Om jag lägger in texten inom diven så försvinner både texten och mouseoverfunktionen, d v s det blir alldeles tomt.
Lösningen
Nu har jag fått den slutliga lösningen till mitt probelm. Jag skickade in det på ett engelskspråkigt forum och fick mycket pedagogisk hjälp av en kille i Storbritannien.
Här är koden:
<?php
while($rad=mysql_fetch_row($result1)){
echo '<tr>
<td>'.$rad[0].'</td>
<td onMouseover="ddrivetip(\'<b>'.$rad[1].'</b><br><br>'.$rad[2].'\' ,\'yellow\', 300);"
onMouseout="hideddrivetip()">'.$rad[1].'</td></tr>';
}
?>
</table>
Därmed betraktar jag problemet som löst. Tack för era bidrag med försök till lösning.
//peroerik