Avatar billede oliverg Nybegynder
11. januar 2004 - 18:24 Der er 19 kommentarer og
1 løsning

php i javascript

Hej alle sammen...!

Jeg har denne del af et system hvor der php koden vises i et <div>:

<span id="iespan"><layer id="nslayer">
Opdatering af chatten sker for tiden!<BR>Vi regner med at kunne være klar i løbet af de næste par dage!!!
</layer></span>

men det virker ikke :S ved i hvorfor?

<script>
chatHTML = '<?php
include("db.php");
$result = mysql_query("select * from online where rum = 'stener'") or die(mysql_error());
while ($row = mysql_fetch_array($result)) {

if($row[felt] == "1") { $x = 0; $y = 1; }
elseif($row[felt] == "2") { $x = 0; $y = 50; }
elseif($row[felt] == "3") { $x = 0; $y = 100; }
elseif($row[felt] == "4") { $x = 0; $y = 150; }
elseif($row[felt] == "5") { $x = 0; $y = 200; }
elseif($row[felt] == "6") { $x = 0; $y = 250; }
elseif($row[felt] == "7") { $x = 0; $y = 300; }
elseif($row[felt] == "8") { $x = 0; $y = 350; }
elseif($row[felt] == "9") { $x = 136; $y = 62; }
elseif($row[felt] == "10") { $x = 204; $y = 62; }
elseif($row[felt] == "11") { $x = 272; $y = 62; }
elseif($row[felt] == "12") { $x = 340; $y = 62; }
elseif($row[felt] == "13") { $x = 0; $y = 124; }
elseif($row[felt] == "14") { $x = 68; $y = 124; }
elseif($row[felt] == "15") { $x = 136; $y = 124; }
elseif($row[felt] == "16") { $x = 204; $y = 124; }
elseif($row[felt] == "17") { $x = 272; $y = 124; }
elseif($row[felt] == "18") { $x = 340; $y = 124; }
elseif($row[felt] == "19") { $x = 0; $y = 186; }
elseif($row[felt] == "20") { $x = 68; $y = 186; }
elseif($row[felt] == "21") { $x = 136; $y = 186; }
elseif($row[felt] == "22") { $x = 204; $y = 186; }
elseif($row[felt] == "23") { $x = 272; $y = 186; }
elseif($row[felt] == "24") { $x = 340; $y = 186; }
elseif($row[felt] == "25") { $x = 0; $y = 248; }
elseif($row[felt] == "26") { $x = 68; $y = 248; }
elseif($row[felt] == "27") { $x = 136; $y = 248; }
elseif($row[felt] == "28") { $x = 204; $y = 248; }
elseif($row[felt] == "29") { $x = 272; $y = 248; }
elseif($row[felt] == "30") { $x = 340; $y = 248; }
elseif($row[felt] == "31") { $x = 0; $y = 310; }
elseif($row[felt] == "32") { $x = 68; $y = 310; }
elseif($row[felt] == "33") { $x = 136; $y = 310; }
elseif($row[felt] == "34") { $x = 204; $y = 310; }
elseif($row[felt] == "35") { $x = 272; $y = 310; }
elseif($row[felt] == "36") { $x = 340; $y = 310; }
else { $row[felt] == "1"; }

echo"
<div id=\"userdiv\" style=\"width:45; height:60; position:absolute; z-index:2; top: $x; left: $y;\">
  <img height=60 width=45 id=\"userfigure\" src=\"$row[figur].gif\">
  <center><b><span style=\"color:$row[tekstfarve];filter:dropshadow(color:black,offy:1,offx:1);width:100%\">$row[brugernavn]</span></b></center></div>
";
}

?>'; //Denne variabel udfyldes med PHP
if (parent.frames['chatten'].opdaterSpan) {
parent.frames['chatten'].opdaterSpan(chatHTML);
setTimeout("self.location.reload(true)",3000);
}
</script>

Håber i kan og vil hjælpe mig :D
Avatar billede skovenborg Nybegynder
11. januar 2004 - 23:48 #1
hvad er det lige opdaterSpan er for noget??? Hvis det er en funktion du selv har lavet skal du i hvert fald ikke gøre det på den måde.

Kunne du ikke give et link til den fulde fil? Det ville også hjælpe meget.

Har du forresten testet at selve php'en virker (fx ved at se hvad der gemmer sig i chatHTML).
Avatar billede oliverg Nybegynder
12. januar 2004 - 13:56 #2
phpen åbnes også i et span så det er opdaterSpan og phpen skulle meget gerne virke eller det gør den!
Avatar billede skovenborg Nybegynder
12. januar 2004 - 17:47 #3
Som sagt ville et link til siden hjælpe utrolig meget.

Kunne du i grunden ikke også fortælle hvad der ikke virker - giver den en fejl eller sker der bare ikke noget?
Avatar billede oliverg Nybegynder
12. januar 2004 - 22:12 #4
Avatar billede skovenborg Nybegynder
13. januar 2004 - 00:07 #5
aah se det hjalp :-)

Tja først og fremmest må jeg forvente du har en frame der hedder chatindhold i dit fulde script - ellers virker det i hvert fald ikke.

Jeg har også fundet ud af hvad opdaterSpan var - det var nok lidt en tanketorsk, for selvfølgelig kan man jo gøre sådan. Havde ikke lige tænkt på det ;-)

Nå, men den direkte fejl er i hvert fald at din chatHTML streng har linieskift i selve koden - og det må man ikke i javascript. Dvs:
<script type="text/javascript">
streng = "Denne streng
er på to linjer"; // Dette er ulovligt i javascript
</script>

Så du bliver nød til at omrokkere i din php-kode for at få den del til at virke.
Avatar billede skovenborg Nybegynder
13. januar 2004 - 00:09 #6
kan det passe du skulle i chatten.php skrive:
<body onload="parent.frames['skjultFrame'].location.reload(true);" bgcolor="#666699">

eller er det meningen at du skal reloade framen der hedder chatindhold????
Avatar billede oliverg Nybegynder
13. januar 2004 - 21:46 #7
1. jeg har ikke nogen frame der hedder chatindhold, men det virker da fint med tekst

2. hvad kan jeg så gøre får at få det til at virke??

3. jeg er ikke helt med i det du mener :S hehe...
Avatar billede skovenborg Nybegynder
13. januar 2004 - 22:21 #8
1: Okay, men i den kode du viste mig, så skriver du:
parent.frames['chatindhold'].location.reload(true);
-- Det var bare derfor ;-)

2: Som sagt kan du sørge for at din javascript variabel er på én linie. Dvs. at dette skal stå på en enkelt linie:
echo"
<div id=\"userdiv\" style=\"width:45; height:60; position:absolute; z-index:2; top: $x; left: $y;\">
  <img height=60 width=45 id=\"userfigure\" src=\"$row[figur].gif\">
  <center><b><span style=\"color:$row[tekstfarve];filter:dropshadow(color:black,offy:1,offx:1);width:100%\">$row[brugernavn]</span></b></center></div>
";

3: Jeg roder også lidt rundt ;-)
Avatar billede oliverg Nybegynder
14. januar 2004 - 21:15 #9
hmm... ok tester lige ;)
Avatar billede oliverg Nybegynder
16. januar 2004 - 22:00 #10
hmm... koden virker fint bare ikke i den blink fri frame

se det virker: http://www.noppy.dk/frame/test.php
og i framen: www.noppy.dk/frame/index.php

:S kan ikke lige se fejlen kan du?
Avatar billede skovenborg Nybegynder
16. januar 2004 - 23:34 #11
igen er det chatHTML strengen den er gal med. Prøv lige at skrive sådan her i skjultFrame.php:
<script type="text/javascript">
<?php
include("db.php");
$result = mysql_query("select * from online where rum = 'stener'") or die(mysql_error());
while ($row = mysql_fetch_array($result)) {

if($row[felt] == "1") { $x = 0; $y = 1; }
elseif($row[felt] == "2") { $x = 0; $y = 50; }
elseif($row[felt] == "3") { $x = 0; $y = 100; }
elseif($row[felt] == "4") { $x = 0; $y = 150; }
elseif($row[felt] == "5") { $x = 0; $y = 200; }
elseif($row[felt] == "6") { $x = 0; $y = 250; }
elseif($row[felt] == "7") { $x = 0; $y = 300; }
elseif($row[felt] == "8") { $x = 0; $y = 350; }
elseif($row[felt] == "9") { $x = 136; $y = 62; }
elseif($row[felt] == "10") { $x = 204; $y = 62; }
elseif($row[felt] == "11") { $x = 272; $y = 62; }
elseif($row[felt] == "12") { $x = 340; $y = 62; }
elseif($row[felt] == "13") { $x = 0; $y = 124; }
elseif($row[felt] == "14") { $x = 68; $y = 124; }
elseif($row[felt] == "15") { $x = 136; $y = 124; }
elseif($row[felt] == "16") { $x = 204; $y = 124; }
elseif($row[felt] == "17") { $x = 272; $y = 124; }
elseif($row[felt] == "18") { $x = 340; $y = 124; }
elseif($row[felt] == "19") { $x = 0; $y = 186; }
elseif($row[felt] == "20") { $x = 68; $y = 186; }
elseif($row[felt] == "21") { $x = 136; $y = 186; }
elseif($row[felt] == "22") { $x = 204; $y = 186; }
elseif($row[felt] == "23") { $x = 272; $y = 186; }
elseif($row[felt] == "24") { $x = 340; $y = 186; }
elseif($row[felt] == "25") { $x = 0; $y = 248; }
elseif($row[felt] == "26") { $x = 68; $y = 248; }
elseif($row[felt] == "27") { $x = 136; $y = 248; }
elseif($row[felt] == "28") { $x = 204; $y = 248; }
elseif($row[felt] == "29") { $x = 272; $y = 248; }
elseif($row[felt] == "30") { $x = 340; $y = 248; }
elseif($row[felt] == "31") { $x = 0; $y = 310; }
elseif($row[felt] == "32") { $x = 68; $y = 310; }
elseif($row[felt] == "33") { $x = 136; $y = 310; }
elseif($row[felt] == "34") { $x = 204; $y = 310; }
elseif($row[felt] == "35") { $x = 272; $y = 310; }
elseif($row[felt] == "36") { $x = 340; $y = 310; }
else { $row[felt] == "1"; }

$chatHTML = "<div id=\"userdiv\" style=\"width:45; height:60; position:absolute;z-index:2; top: $x; left: $y;\"><img height=60 width=45 id=\"userfigure\" src=\"$row[figur].gif\"><center><b><span style=\"color:$row[tekstfarve];filter:dropshadow(color:black,offy:1,offx:1);width:100%\">$row[brugernavn]</span></b></center></div>";
}

?>
chatHTML = '<?php echo $chatHTML;?>';

Du har heller ikke rettet chattet.php der hvor der står:
<body onLoad="parent.frames['chatindhold'].location.reload(true);">
da der jo skal være en ramme der hedder chatindhold for at det skal virke...
Prøv at forklar hvad det er for en side du gerne vil have reloadet, så skal jeg nok hjælpe med det :-)
Avatar billede oliverg Nybegynder
17. januar 2004 - 10:34 #12
skal jeg rette <body onLoad="parent.frames['chatindhold'].location.reload(true);"> til <body onLoad="parent.frames['chatten'].location.reload(true);"> ???
Avatar billede oliverg Nybegynder
17. januar 2004 - 10:39 #13
hey :D

jeg rettet <BODY BGCOLOR="#666699" onLoad="parent.frames['skjultFrame'].location.reload(true);"> og lavet skjultFrame om til det du sagde... men nu viser den kun i figur
Avatar billede oliverg Nybegynder
17. januar 2004 - 10:51 #14
en figur ;)
Avatar billede skovenborg Nybegynder
17. januar 2004 - 12:31 #15
det rigtigt - så skal du gøre sådan her (ikke testet):
<?php
include("db.php");
$chatHTML = "";
$result = mysql_query("select * from online where rum = 'stener'") or die(mysql_error());
while ($row = mysql_fetch_array($result)) {

if($row[felt] == "1") { $x = 0; $y = 1; }
elseif($row[felt] == "2") { $x = 0; $y = 50; }
elseif($row[felt] == "3") { $x = 0; $y = 100; }
elseif($row[felt] == "4") { $x = 0; $y = 150; }
elseif($row[felt] == "5") { $x = 0; $y = 200; }
elseif($row[felt] == "6") { $x = 0; $y = 250; }
elseif($row[felt] == "7") { $x = 0; $y = 300; }
elseif($row[felt] == "8") { $x = 0; $y = 350; }
elseif($row[felt] == "9") { $x = 136; $y = 62; }
elseif($row[felt] == "10") { $x = 204; $y = 62; }
elseif($row[felt] == "11") { $x = 272; $y = 62; }
elseif($row[felt] == "12") { $x = 340; $y = 62; }
elseif($row[felt] == "13") { $x = 0; $y = 124; }
elseif($row[felt] == "14") { $x = 68; $y = 124; }
elseif($row[felt] == "15") { $x = 136; $y = 124; }
elseif($row[felt] == "16") { $x = 204; $y = 124; }
elseif($row[felt] == "17") { $x = 272; $y = 124; }
elseif($row[felt] == "18") { $x = 340; $y = 124; }
elseif($row[felt] == "19") { $x = 0; $y = 186; }
elseif($row[felt] == "20") { $x = 68; $y = 186; }
elseif($row[felt] == "21") { $x = 136; $y = 186; }
elseif($row[felt] == "22") { $x = 204; $y = 186; }
elseif($row[felt] == "23") { $x = 272; $y = 186; }
elseif($row[felt] == "24") { $x = 340; $y = 186; }
elseif($row[felt] == "25") { $x = 0; $y = 248; }
elseif($row[felt] == "26") { $x = 68; $y = 248; }
elseif($row[felt] == "27") { $x = 136; $y = 248; }
elseif($row[felt] == "28") { $x = 204; $y = 248; }
elseif($row[felt] == "29") { $x = 272; $y = 248; }
elseif($row[felt] == "30") { $x = 340; $y = 248; }
elseif($row[felt] == "31") { $x = 0; $y = 310; }
elseif($row[felt] == "32") { $x = 68; $y = 310; }
elseif($row[felt] == "33") { $x = 136; $y = 310; }
elseif($row[felt] == "34") { $x = 204; $y = 310; }
elseif($row[felt] == "35") { $x = 272; $y = 310; }
elseif($row[felt] == "36") { $x = 340; $y = 310; }
else { $row[felt] == "1"; }

$chatHTML .= "<div id=\"userdiv\" style=\"width:45; height:60; position:absolute;z-index:2; top: $x; left: $y;\"><img height=60 width=45 id=\"userfigure\" src=\"$row[figur].gif\"><center><b><span style=\"color:$row[tekstfarve];filter:dropshadow(color:black,offy:1,offx:1);width:100%\">$row[brugernavn]</span></b></center></div>";
}

?>
Avatar billede oliverg Nybegynder
17. januar 2004 - 13:25 #16
super nice :D har du msn?

og smid lige et svar... :P
Avatar billede erikjacobsen Ekspert
17. januar 2004 - 13:27 #17
Skal
  else { $row[felt] == "1"; }
ikke være
  else { $x = 0; $y = 1; }

Du har ikke overvejet at lave dine if-sætninger lidt smartere og hurtigere?
Avatar billede skovenborg Nybegynder
17. januar 2004 - 13:53 #18
svar :-)

(angående msn så kig på min minisite)
Avatar billede skovenborg Nybegynder
17. januar 2004 - 13:57 #19
erikjacobsen >> Tænker du på switch i stedet for alle elseif'erne ?-)
Avatar billede oliverg Nybegynder
17. januar 2004 - 14:01 #20
hmm... jo jeg har hørt at man kan gøre det nemmere og smartere, men ved ikke hvordan ved i?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester