webForumDet fria alternativet

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in ...

26 svar · 1 506 visningar · startad av peroerik · sida 2 av 2

peroerikMedlem sedan juni 200827 inlägg
#21

Tyvärr inte heller detta var lösningen på mitt problem

effataMedlem sedan apr. 2008141 inlägg
#22

Posta url till sidan eller komplett source inklusive javascript. Det är hopplöst att försöka felsöka så här...

peroerikMedlem sedan juni 200827 inlägg
#23

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.

peroerikMedlem sedan juni 200827 inlägg
#24

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>

colioneMedlem sedan juni 20013 386 inlägg
#25

Du får lägga texten inom diven du har onmouseover på...

peroerikMedlem sedan juni 200827 inlägg
#26

Om jag lägger in texten inom diven så försvinner både texten och mouseoverfunktionen, d v s det blir alldeles tomt.

peroerikMedlem sedan juni 200827 inlägg
#27

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

Genererad på 380 ms · cache AV · v20260730165559-full.f96bc7eb