Avatar billede andersdp Nybegynder
09. oktober 2003 - 13:42 Der er 8 kommentarer og
1 løsning

problemer med kombineret php og javascript

Hej.

Jeg bruger nedenstående javascript til at detecte hvilken skærmstørrelse brugeren har, og ud fra det udskrive de php variabler som jeg bruger senere i min kode.

Problemet er at selv om det er en switch, så er det altid case 3 der er gældende ligegyldig hvilken skærmstørrelse man har... Det er som om det hele afvikles og variablerne dermed overskriver hinanden.

//screensize detect
if (screen.width==800||screen.height==600) //hvis 800x600
{ var s = 1; }
else if (screen.width==1024||screen.height==768) //hvis 1024x768
{ var s = 2; }
else if (screen.width>1024||screen.height>768) //hvis større end 1024x768
{ var s = 3; }

switch (s)
{
case 1:
document.write('<?php $size = "800"; ?>')
document.write('<?php $content = "140"; ?>')
document.write('<?php $top = "250"; ?>')
document.write('<?php $picw = "250"; ?>')
document.write('<?php $pich = "200"; ?>')
break;

case 2:
document.write('<?php $size = "1024"; ?>')
document.write('<?php $content = "190"; ?>')
document.write('<?php $top = "300"; ?>')
document.write('<?php $picw = "300"; ?>')
document.write('<?php $pich = "250"; ?>')
break;

case 3:
document.write('<?php $size = "1024+"; ?>')
document.write('<?php $content = "220"; ?>')
document.write('<?php $top = "350"; ?>')
document.write('<?php $picw = "350"; ?>')
document.write('<?php $pich = "280"; ?>')
break;
}
Avatar billede dawin_dk Nybegynder
09. oktober 2003 - 13:52 #1
ahhh... sårn fungerer det ikke ... husk at PHP-koden bliver kørt pås erveren og først bagefter bliver JS kørt på brugerens maskine ... IKKE serveren ...
Avatar billede andersdp Nybegynder
09. oktober 2003 - 13:56 #2
Troede egentlig at det blev sendt afsted som en tekststreng fra serveren, men kan da godt se at serveren ignorerer javascripten og kører php'en...

Du har ikke et forslag til hvordan det kan klares?
Avatar billede dawin_dk Nybegynder
09. oktober 2003 - 14:02 #3
det du skal køre er at du sakl køre noget JS som så smider de tal du skal ha fra JS på som parameter .. dvs at man f.eks. bliver smidt til en index side til at starte med .. som ik gør andet end at finde opløsningen og så smider brugerenvidere til den faktiske PHP side..

f.eks. kunne den indeholde:
document.location.href='side.php?screen='+screen.width+'x'+screen.height;
Avatar billede andersdp Nybegynder
09. oktober 2003 - 14:13 #4
Ja, det var da en mulighed.
Men der kan nemt opstå problemer. Hvis nu en bruger sender et link til en anden som har en lavere opløsning - så ville denne ikke komme igennem opløsningstjekket, og demed få vist en side de kun kan se delvist.

Det optimale var hvis det kunne afvikles på samme side..
Avatar billede dawin_dk Nybegynder
09. oktober 2003 - 14:16 #5
på den side må du så lave så den sender opløsningen til en php side med f.eks.

document.write '<img src="oplos.php?screen='+screen.width+'x'+screen.height+'">';

og så gemmer det i en session for den bruger ... så vil første side måske se forkert ud ..
Avatar billede dawin_dk Nybegynder
09. oktober 2003 - 14:17 #6
du kunne også gennemtvinge at hvis brugerens opløsning ikke stemmer overens med det brugerens session siger... så refresher den med ny opløsning ..
Avatar billede andersdp Nybegynder
09. oktober 2003 - 14:41 #7
Hmm ja..

Kom til at tænke på, at jeg måske kan bruge document.write(variable) de steder jeg skal bruge det i html koden. Det vil jeg lige rode med..
Avatar billede andersdp Nybegynder
09. oktober 2003 - 17:12 #8
Så fik jeg problemet løst ved at udskrive de forskellige variable.
Vil du ikke have lidt point for din tid, dawin?
Avatar billede dawin_dk Nybegynder
09. oktober 2003 - 20:36 #9
kan vi da godt sige .. men er ik nødvendigt .. hjælper hvor jeg kan :)
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