webForumDet fria alternativet

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

26 svar · 1 506 visningar · startad av peroerik

peroerikMedlem sedan juni 200827 inlägg
#1

Jag försöker visa lite extra text vid mouseOver på ett fält i en tabell men får inte till det. Får rubricerade fel på rad 178.
Rad 178 är den som börjar med mouseout i slutet av bifogade utdrag ur min kod.

Kan någon hjälpa mig att se vad som är fel.
$rad[] finn i en vektor som hämtat in tidigare från MySQL. det fungerar OK.

------

<h2>Filmer kvar att visa 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($result1)){
echo "<tr><td>".$rad[0]."</td><td>".$rad[1]."</td></tr>";
}
?>
</table>

<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>
onMouseover="ddrivetip($rad[2],'yellow', 300)";
onMouseout="hideddrivetip()"</td></tr>";
}

?>
</table>

effataMedlem sedan apr. 2008141 inlägg
#2

Du har ju semikolon och citattecken på raden ovanför, detta strular till echoraden. Php tror helt enkelt att strängen tar slut vid onMouseover="
Om du har en sträng innesluten i " måste alla " i strängen vara escapade, dvs \"

peroerikMedlem sedan juni 200827 inlägg
#3

Fortfarande problem

Tyvärr hjälpte inte tipset om " och \.
Kanske beror det på mina bristande grundkunskaper.
Har testat att skriva om på diverse sätt men får ändå ingen mouseover funktion.

TulorkMedlem sedan aug. 2004952 inlägg
#4

Prova detta

<?php
while($rad = mysql_fetch_row($result1)){
echo "<tr><td>{$rad[0]}</td><td>{$rad[1]}</td></tr>";
}
?>
</table>

<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>
onMouseover=\"ddrivetip($rad[2],'yellow', 300)\";
onMouseout=\"hideddrivetip()\"</td></tr>";
}

?>
peroerikMedlem sedan juni 200827 inlägg
#5

Tyväll löstes inte problemet helt. Jag fick inget syntaxfel men utskriften blev inte den önskade. Det blev ingen Mousseoverfunktion. Tecten onMouseover= o.s v skrevs ut före respektive efter innehållet i $rad[2].
Såhär alltså:

onMouseover="ddrivetip(Detta är beskrivning av första filmen,'yellow', 300)"; onMouseout="hideddrivetip()"

TulorkMedlem sedan aug. 2004952 inlägg
#6

Testa detta

<?php
while($rad = mysql_fetch_row($result1)){
echo "<tr><td>{$rad[0]}</td><td>{$rad[1]}</td></tr>";
}
?>
</table>

<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 onMouseover=\"ddrivetip($rad[2],\'yellow\', 300);\" onMouseout=\"hideddrivetip();\">{$rad[0]}</td><td>{$rad[1]}</td>
</td></tr>";
}

?>

Om inte det fungerar... testa detta

<?php
while($rad = mysql_fetch_row($result1)){
echo "<tr><td>{$rad[0]}</td><td>{$rad[1]}</td></tr>";
}
?>
</table>

<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 onMouseover=\"ddrivetip($rad[2],'yellow', 300);\" onMouseout=\"hideddrivetip();\">{$rad[0]}</td><td>{$rad[1]}</td>
</td></tr>";
}

?>

Om inte det heller fungerar....testa

<?php
while($rad = mysql_fetch_row($result1)){
echo "<tr><td>{$rad[0]}</td><td>{$rad[1]}</td></tr>";
}
?>
</table>

<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>
onMouseover=\"ddrivetip($rad[2],\'yellow\', 300)\";
onMouseout=\"hideddrivetip()\"</td></tr>";
}

?>

Om inte det fungerar... sorry.

bassebhuMedlem sedan nov. 20014 028 inlägg
#7

Hur tänkte du i sista exemplet tulork? Jag skulle tippa att mittenexemplet där är det bästa.

TulorkMedlem sedan aug. 2004952 inlägg
#8

Hur menar du? Att jag escapar ' ? My bad. Men hela den där mouseOver grejjen har han placerat fel i sitt egna exempel... brukar inte ha dessa <tr>här</tr> vad jag vet.

TroxyMedlem sedan mars 20041 508 inlägg
#9

Här är ett femtioelfte exempel:

<h2>Filmer kvar att visa 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($result1)):?>
	<tr><td><?php echo $rad[0];?></td><td><?php echo $rad[1];?></td></tr>
<?php endwhile;?>
</table>
<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)):?>
	<tr><td onMouseover="ddrivetip(<?php echo $rad[2];?>,'yellow', 300);" onMouseout="hideddrivetip();"><?php echo $rad[0];?></td><td><?php echo $rad[1];?></td></tr>
<?php endwhile;?>
</table>
peroerikMedlem sedan juni 200827 inlägg
#10

Tyvärr mina vänner, inget av era försök att hjälpa mig lösa detta har givit önskat resultat. Det blir ingen Mouseover funktion. Tack för era försök jag får trixa vidare och se vad som kan göras. Någonstans finns en lösning.

TulorkMedlem sedan aug. 2004952 inlägg
#11

Men alltså... ddrivetip() och hideddrivetip()..... fungerar dem?? Har du testat det separat, på en vanlig statisk html sida? Få det att fungera där först, sen i utskriften i PHP filen.

peroerikMedlem sedan juni 200827 inlägg
#12

Funktionerna är OK

JavaScript funktionerna är OK i ett enklare exempel än mitt. De används av många andra dessutom.
Men har du bättre lösningar på mitt problem så är jag öppen för att testa dem.

colioneMedlem sedan juni 20013 386 inlägg
#13

Hur ser den genererade html-koden ut från de olika exemplen?

peroerikMedlem sedan juni 200827 inlägg
#14

Jag är inte säker på att jag försår vad du frågar efter colione.

TroxyMedlem sedan mars 20041 508 inlägg
#15

peroerik, kör igenom PHP-scriptet i webbläsaren. Sen väljer du "Visa källa" för att se hur den färdiga HTML-koden ser ut.

peroerikMedlem sedan juni 200827 inlägg
#16

OK, men för de kodvarianter där jag har syntaxfel kommer jag ju aldrig så långt.
För övriga varianter ska jag försöka göra det då jag är tillbaka hemma och har tillgång till min source igen.

peroerikMedlem sedan juni 200827 inlägg
#17

Ett resultat

Här är ett resultat som kom ganska nära men någon Mouseover funktion blev det inte. Det blev heller inga syntaxfel.

Utdrag ur min PHP-fil:
------
while($rad=mysql_fetch_row($result2)){
echo "<tr><td>.$rad[0].'</td><td>.$rad[1].</td>
<td onMouseover=ddrivetip(<b>$rad[1]</b>($rad[2],yellow,300));
onMouseout=hideddrivetip()></tr>";
}

?>
</table>

Såhär ser det ut då jag via browsern visar källa:

------------
<br>
<h2>Filmer visade tidigare under terminen.</h2><br>
<table border="0" cellpadding="10">
<tr><td><b>Visningsdatum </td><td><b>Filmtitel</td></tr>

<tr><td>.2008-07-01.'</td><td>.Första filmen.</td>
<td onMouseover=ddrivetip(<b>Första filmen</b>(Detta är beskrivning av första filmen,yellow,300));
onMouseout=hideddrivetip()></tr><tr><td>.2008-07-08.'</td><td>.Andra filmen för sommaren.</td>
<td onMouseover=ddrivetip(<b>Andra filmen för sommaren</b>(Detta är beskrivningen av andra filmen för sommaren.,yellow,300));
onMouseout=hideddrivetip()></tr><tr><td>.2008-07-10.'</td><td>.denna titel ska visa hur lång en filmtitel kan få vara ---------------------------------------------.</td>
<td onMouseover=ddrivetip(<b>denna titel ska visa hur lång en filmtitel kan få vara ---------------------------------------------</b>(Beskrivning aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,yellow,300));
onMouseout=hideddrivetip()></tr><tr><td>.2008-07-16.'</td><td>.Filmen.</td>
<td onMouseover=ddrivetip(<b>Filmen</b>(Beskrivningen av en film kan göras här,yellow,300));
onMouseout=hideddrivetip()></tr><tr><td>.2008-07-17.'</td><td>.Denna fil har en lång och besvärlig titel.</td>
<td onMouseover=ddrivetip(<b>Denna fil har en lång och besvärlig titel</b>(Beskrivningen av filmen är helt omöjlig men jag gölr det ändå.
Det skulle vara kul om jag nu också kunde få ut lite onMouse over beskrivning.,yellow,300));
onMouseout=hideddrivetip()></tr><tr><td>.2008-07-18.'</td><td>.Nu ska vi ta en ännu längre titel på denna film.</td>
<td onMouseover=ddrivetip(<b>Nu ska vi ta en ännu längre titel på denna film</b>(Ingen beskrivning alls,yellow,300));
onMouseout=hideddrivetip()></tr><tr><td>.2008-07-19.'</td><td>.Nu ska vi ta en ännu längre titel på denna film.</td>
<td onMouseover=ddrivetip(<b>Nu ska vi ta en ännu längre titel på denna film</b>(Ingen beskrivning finns. Obeskrivlig,yellow,300));
onMouseout=hideddrivetip()></tr></table>

</body>

peroerikMedlem sedan juni 200827 inlägg
#18

Troxys femtioelfte exempel

Såhär ser rubricerade exempel ut via visa källa i browsern:
Ingen Mouseoverfunktion dock.

------------
<br>
<h2>Filmer visade tidigare under terminen.</h2><br>
<table border="0" cellpadding="10">
<tr><td><b>Visningsdatum </td><td><b>Filmtitel</td></tr>
<tr><td onMouseover="ddrivetip(Detta är beskrivning av första filmen,'yellow', 300);" onMouseout="hideddrivetip();">2008-07-01</td><td>Första filmen</td></tr>
<tr><td onMouseover="ddrivetip(Detta är beskrivningen av andra filmen för sommaren.,'yellow', 300);" onMouseout="hideddrivetip();">2008-07-08</td><td>Andra filmen för sommaren</td></tr>
<tr><td onMouseover="ddrivetip(Beskrivning aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,'yellow', 300);" onMouseout="hideddrivetip();">2008-07-10</td><td>denna titel ska visa hur lång en filmtitel kan få vara ---------------------------------------------</td></tr>
<tr><td onMouseover="ddrivetip(Beskrivningen av en film kan göras här,'yellow', 300);" onMouseout="hideddrivetip();">2008-07-16</td><td>Filmen</td></tr>
<tr><td onMouseover="ddrivetip(Beskrivningen av filmen är helt omöjlig men jag gölr det ändå.
Det skulle vara kul om jag nu också kunde få ut lite onMouse over beskrivning.,'yellow', 300);" onMouseout="hideddrivetip();">2008-07-17</td><td>Denna fil har en lång och besvärlig titel</td></tr>
<tr><td onMouseover="ddrivetip(Ingen beskrivning alls,'yellow', 300);" onMouseout="hideddrivetip();">2008-07-18</td><td>Nu ska vi ta en ännu längre titel på denna film</td></tr>
<tr><td onMouseover="ddrivetip(Ingen beskrivning finns. Obeskrivlig,'yellow', 300);" onMouseout="hideddrivetip();">2008-07-19</td><td>Nu ska vi ta en ännu längre titel på denna film</td></tr>
</table>

peroerikMedlem sedan juni 200827 inlägg
#19

Förväntningar

Jag förväntar mig att den text som i databasen finns i fältet beskrivning ska dyka upp i en liten ruta med gul bakgrund och med filmtiteln i fetstil då jag för muspekaren över filmtiteln som lagts ut med echo.

effataMedlem sedan apr. 2008141 inlägg
#20

Direkt ser jag att du inte har några citattecken runt texten i funktionsanropet.
T.ex.
onMouseover="ddrivetip(Beskrivningen av en film kan göras här,'yellow', 300);

Borde stå
onMouseover="ddrivetip('Beskrivningen av en film kan göras här','yellow', 300);

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