J jlee Medlem sedan dec. 2002 378 inlägg Frågan 19 dec. 2006 10:20 #1 Hur kan jag skriva detta rätt?
Vill kolla om indexsidan inte har något id eller id=0 och då vill jag visa ett helt javascript annars vill jag visa en bild bara.
Hur får jag detta rätt?
Antar att villkoret i if satsen måste skrivas på ett visst sätt?!
<?php
if (index.php?option=com_frontpage&Itemid=0 ) {
visa ett javascript här...
} else {
en bild
}
?>
P Peter S Medlem sedan dec. 2002 5 483 inlägg Är det Itemid du menar?
if (!isset($_GET['Itemid']) || $_GET['Itemid'] == 0){
//
} else {
//
}
J jlee Medlem sedan dec. 2002 378 inlägg Ja det är det men hur kan jag presentera ett javascript om det är sant? Är det bara att lägga in det med <SCRIPT LANGUAGE=JavaScript1.1> + hela scriptet? då eller?
Kriko Medlem sedan dec. 2006 382 inlägg Japp. JavaScript är klientexekverat och köra således efter att PHP-koden exekverats.
Är if-satsen falsk kommer aldrig javascriptet skickas till klienten.
P Peter S Medlem sedan dec. 2002 5 483 inlägg Det finns väl olika sätt att göra det på. Ett kan vara:
if (){
include "fil.js";
} else {
//
}
Ett annat är att använda echo "<script...";
S Spinx Medlem sedan nov. 2003 21 inlägg Enklast för nybörjare är att separera php och html/js:
<?
if (isset($_GET['Itemid']) && $_GET['Itemid'] != 0){
?>
<script>/*Javascript här!*/</script>
<?
} else {
?>
Här körs inget javascript!
<?
}
?>
Det är inte nödvändigt att använda else.
Om du inte vill att nånting ska hända om id inte är större än 0 så kan du använda detta:
<?
if (isset($_GET['Itemid']) && $_GET['Itemid'] != 0){
?>
<script>/*Javascript här!*/</script>
<?
}
?>
J jlee Medlem sedan dec. 2002 378 inlägg En följdfråga på denna tråd är om jag vill kolla en hel url istället, hur skriver jag då i php för att kolla dessa 2 samtidigt:
http://www.sajten.se/index.php
http://www.sajten.se/index.php?option=com_frontpage&Itemid=60
P Peter S Medlem sedan dec. 2002 5 483 inlägg <?
if (isset($_GET['Itemid']) && preg_match('/^http:\/\/www\.sajten\.se\/index\.php(?:\?option=com_frontpage&Itemid=60)?$/', $_GET['Itemid']) != 0){
?>
<script>/*Javascript här!*/</script>
<?
}
?>
If-satsen körs om $_GET['Itemid'] matchar någon av adresserna.
J jlee Medlem sedan dec. 2002 378 inlägg Hmm, måste vara något fel på den kodsnutten? Sidan vill inte visas nu..
P Peter S Medlem sedan dec. 2002 5 483 inlägg Vad innehåller $_GET["Itemid"] ?
J jlee Medlem sedan dec. 2002 378 inlägg Ett visst id innehåller ett visst innehåll. Så om dessa (http://www.sajten.se/index.php
http://www.sajten.se/index.php?opti...tpage&Itemid=60 )
uppfylls så ska jag visa en flash annars en bild bara.
Tog fel....nu visas bilden även på dessa id
P Peter S Medlem sedan dec. 2002 5 483 inlägg Det är inte $_SERVER["HTTP_REFERER"] du vill kolla i efter adresserna?
(Jag har gjort en liten ändring i kodstycket ovan.)
J jlee Medlem sedan dec. 2002 378 inlägg Ok, det är fortfarande bilden som visas bara. Vet inte om det är $_SERVER["HTTP_REFERER"] jag vill kolla.
Det jag är ute efter är om någon av dessa exakta url´s visas så visa flash
P Peter S Medlem sedan dec. 2002 5 483 inlägg Så här kanske:
<?
if (preg_match('/^http:\/\/www\.sajten\.se\/index\.php(?:\?option=com_frontpage&Itemid=60)?$/', 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']) != 0){
?>
<script>/*Javascript här!*/</script>
<?
}
?>
J jlee Medlem sedan dec. 2002 378 inlägg Nu funkar det men nu visas tyvärr flashen på alla sidor
J jlee Medlem sedan dec. 2002 378 inlägg Ett exempel på en annan sidas avslutning i url´n för att underlätta kanske: /index.php?option=com_content&task=view&id=12&Itemid=85&Itemid=106
J jlee Medlem sedan dec. 2002 378 inlägg Perfekt!! Nu funkar det precis som jag ville. Tack Peter!!