frg Skrevet 26. juni 2003 Del Skrevet 26. juni 2003 Har laget ett lite testscript som skal lese skjermoppløsningen og utføre en handling. Den skriver ut rett(med echo) men klarer ikke å utføre if setningen. Hvorfor går ikke det? Det virker som om det ikke er noen ordentlig verdi i variablene. Noen som har en ide? <? $opplosning_hoyde = "<script language=javascript>document.write(screen.height)</script>"; $opplosning_bredde = "<script language=javascript>document.write(screen.width)</script>"; echo $opplosning_hoyde."<br>".$opplosning_bredde; if ($opplosning_hoyde == 768 && $opplosning_bredde == 1024) { echo "<br>Her skal det skje noe....."; } ?> Lenke til kommentar
BlueEAGLE Skrevet 26. juni 2003 Del Skrevet 26. juni 2003 Dette har med at javascript kjører på klienten og php kjører på serveren. Med andre ord så vil ikke serveren klare å utføre javascript. Det du må gjøre er å lage en side som sender dette fra klienten til serveren for eksempel vha. et skjema som poster dette som skjulte felt. Lenke til kommentar
frg Skrevet 26. juni 2003 Forfatter Del Skrevet 26. juni 2003 Dette har med at javascript kjører på klienten og php kjører på serveren. Med andre ord så vil ikke serveren klare å utføre javascript. Det du må gjøre er å lage en side som sender dette fra klienten til serveren for eksempel vha. et skjema som poster dette som skjulte felt. Hvorfor klarer jeg å skrive ut variablene da? Er det på en måte en "illusjon" at er en en verdi der? Hvis du skjønner hva jeg mener...? Lenke til kommentar
BlueEAGLE Skrevet 26. juni 2003 Del Skrevet 26. juni 2003 Min feil! <? $opplosning_hoyde = "<script language=javascript>document.write(screen.height)</script>"; $opplosning_bredde = "<script language=javascript>document.write(screen.width)</script>"; echo $opplosning_hoyde."<br>".$opplosning_bredde; if ($opplosning_hoyde == 768 && $opplosning_bredde == 1024) { echo "<br>Her skal det skje noe....."; } ?> Feilen din er i if-setningen. if ($opplosning_hoyde == 768 && $opplosning_bredde == 1024) { echo "<br>Her skal det skje noe....."; Det du vil gjøre er å sjekke om høyde=768 og bredde=1024. Dette er to operasjoner og begge må stemme. mao. så mente du å skrive if (($opplosning_hoyde == 768) && ($opplosning_bredde == 1024)) { echo "<br>Her skal det skje noe....."; Lenke til kommentar
frg Skrevet 26. juni 2003 Forfatter Del Skrevet 26. juni 2003 Nei det er ikke der det er feil(men du har rett i skrivefeilen), har prøvd bare med et vilkår også. Det er som om variabelen ikke har en verdi. Så det er sikkert ikke noe i det du sa først med at php ser ett serverside språk. Men det er så pussig at jeg klarer å få ut verdien på variabelen når jeg bruker "echo". Har funnet en løsning på problemet, jeg lager et javascript som lager en cookie som php på leser, da virker det. Lenke til kommentar
b-urn Skrevet 26. juni 2003 Del Skrevet 26. juni 2003 Det er som om variabelen ikke har en verdi. Så det er sikkert ikke noe i det du sa først med at php ser ett serverside språk. Men det er så pussig at jeg klarer å få ut verdien på variabelen når jeg bruker "echo". Tenkte bare jeg skulle oppklare litt. Php-koden eksekveres på server. Det er resultatet som sendes til klienten (slik BlueEAGLE påpekte). Grunnen til at du får ut noe med echo er som følger: echo ( $opplosning_hoyde); evalueres til echo ( "<script language=javascript>document.write(screen.height)</script>"); Det vil si at det som returneres til klienten/nettleseren din er: <script language=javascript>document.write(screen.height) Når nettleseren kommer over js-koden og evaluerer.. vil screen.height verdien skrives ut til skjermen. Den vises fordi nettleseren fant ut av det, ikke fordi php fant ut av verdien og sendte til nettleseren. PHP kan ikke gjøre noen avgjørelse på bakgrunn av bredde/høyde-verdiene fordi de ikke er kjent før nettleseren har mottat resultatet av php-skriptet. Lenke til kommentar
PlastBox Skrevet 26. juni 2003 Del Skrevet 26. juni 2003 Hvis du vil ha det litt enkelt skal vel dette fungere: <?php if(!empty($_GET['width']) && !empty($_GET['height'])) { echo $_GET['width'].' '.$_GET['height']; exit; } ?> <script language=javascript>document.write('<meta http-equiv="refresh" content="0; URL=res.php?width='+screen.width+'&height='+screen.height+'">');</script> Lenke til kommentar
frg Skrevet 27. juni 2003 Forfatter Del Skrevet 27. juni 2003 Tusen takk til alle som har svart. Nå har jeg lært meg litt mer. Lenke til kommentar
BlueEAGLE Skrevet 27. juni 2003 Del Skrevet 27. juni 2003 b-run: Hah, jeg visste jeg hadde rett. Bare at jeg var litt trøtt da jeg svarte Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå