Avatar billede boost Nybegynder
17. september 2006 - 11:58 Der er 6 kommentarer og
1 løsning

Problemer med screen.width

Hej

Jeg kan ikke få denne kode til at virke:

<script language="javascript">
if (screen.width == 800) {
    <?php $td = 4; ?>
}

if (screen.width == 1024) {
    <?php $td = 5; ?>
}

if (screen.width >= 1280) {
    <?php $td = 6; ?>
}
</script>

Vil den kode virke i alle browsers eller kun IE, Hvis den kun virker i IE, hvor finder jeg så en tilsvarende som virker i alle browsers?

Hvordan laver jeg så hvis den ikke kan finde screen width'en så skal $td standart være 4?
Avatar billede erikjacobsen Ekspert
17. september 2006 - 12:07 #1
Nu hedder det så altså: window.screen.width ( http://developer.mozilla.org/en/docs/DOM:window.screen.width ),
men så skulle den gerne virke i alle. Men du skal vel hellere gøre noget i retning af
1) <=800
2) <=1024
3) ellers
Avatar billede boost Nybegynder
17. september 2006 - 12:13 #2
Så ser koden sådan ud:

<script language="javascript">
if (window.screen.width <= 800) {
    <?php $td = 4; ?>
}

if (window.screen.width <= 1024) {
    <?php $td = 5; ?>
}

if (window.screen.width >= 1280) {
    <?php $td = 6; ?>
}
</script>

Men hvordan gør jeg så hvis den ikke kan finde width så skal $td være 4?
Avatar billede pidgeot Nybegynder
17. september 2006 - 12:17 #3
Nu glemmer du den mest elementære regel: Javascript er client-side, mens PHP er server-side. Når browseren engang kører dit JavaScript, er siden ude af PHPs hænder.

Det betyder SAMTIDIGT at dine PHP-sætninger altid bliver kørt, for der er ingen betingelse for dem. Det du skal gøre er at bruge en speciel side der foretager beregning clientside og sender oplysningerne videre til PHP ved at gå videre til den rigtige side. Der kan PHP så kigge på det, og vurdere hvad $td skal være.

Se evt. http://www.php.net/manual/en/faq.html.php#faq.html.javascript-variable for et eksempel.
Avatar billede erikjacobsen Ekspert
17. september 2006 - 12:50 #4
Jeg synes ikke dine if-sætninger deler op i de rigtige tilfælde. Hvis du er uenig med det jeg skriver i 17/09-2006 12:07:56, så må du sige til. Men hvis du er enig synes jeg du skal bruge det. Ellers ved ikke helt hvad du prøver på?

Og dernæst kommer problemet så med at få registeret hvad bredden er (PHP-problemet som pidgeot skriver). Hvad skal du bruger det til? Og hvorfor skærmens bredde, når brugeren kan vælge at have et mindre vindue end skærmens størrelse?
Avatar billede boost Nybegynder
17. september 2006 - 13:13 #5
Smid et svar begge 2..

erikjacobsen: Havde jeg ikke lige tænkt på med minimeret vindue..
Avatar billede erikjacobsen Ekspert
17. september 2006 - 13:22 #6
Jeg samler slet ikke på point, tak.
Avatar billede pidgeot Nybegynder
17. september 2006 - 14:43 #7
Værsgo :)
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