webForumDet fria alternativet

Var är felet?

2 svar · 226 visningar · startad av maz0

maz0Medlem sedan juni 200424 inlägg
#1

Jag har gjort en mallsida som hämtar information från en databas, nu vill jag infoga en bild i topen på sidan, men beroende på vilken information sidan skall innehålla så skall även bilden bytas. Detta har jag försökt att lösa med följande kod.

<td height="15" colspan="8" valign="top">
	<? 	
	if (isset($_GET['cat']) AND isset($_GET['cat']=="vi"))
	{
		print "<img src=\"/images/vi.jpg\" border=\"0\">";
	}
	elseif (isset($_GET['cat']) AND $_GET['cat']=="privat")
	{
		print "<img src=\"/images/privat.jpg\" border=\"0\">";
	}
	elseif (isset($_GET['cat']) AND $_GET['cat']=="foretag")
	{
		print "<img src=\"/images/foretag.jpg\" border=\"0\">";
	}
	elseif (isset($_GET['cat']) AND $_GET['cat']=="kontakt")
	{
		print "<img src=\"/images/kontakt.jpg\" border=\"0\">";
	}
	else
	{
		print "<h1>Bild saknas</h1>";
	}
?> 
</td>

Problemet är att när jag infogar denna kod snutt så "dör" hela mallen dvs den innehåller ingenting, det enda som finns om man tittar på källan i webbläsaren är <html><body></body></html>.
Jag kan inte hitta något fel...någon annan som kan?

PeeerMedlem sedan mars 20025 907 inlägg
#2

Din första if-sats ser lite konstig ut

if (isset($_GET['cat']) AND [b]isset($_GET['cat']=="vi"[/b]))

Ett alternativ till alla dessa if-satser är att du tar dig en titt på switch

<?php     
if(!isset($_GET['cat']))
	$_GET['cat'] = '';	

switch($_GET['cat']){
	case 'vi':
		print '<img src="/images/vi.jpg" border="0">';
		break;
    
    case 'privat':
		print '<img src="/images/privat.jpg" border="0">';
		break;
		
    case 'foretag':
		print '<img src="/images/foretag.jpg" border="0">';
		break;

	case 'kontakt':
        print '<img src="/images/kontakt.jpg" border="0">';
		break;

	default:
        print '<h1>Bild saknas</h1>';
}
?>

Blir smidigare kod enligt mig. En ännu smidigare variant som fungerar i det här fallet är

$arr = array('vi','privat','foretag','kontakt');
if(isset($_GET['cat']) and in_array($_GET['cat'],$arr))
	print '<img src="/images/'.$_GET['cat'].'.jpg" border="0">';
else 
	print '<h1>Bild saknas</h1>';

:)

maz0Medlem sedan juni 200424 inlägg
#3

Tusen tack...alt 2 fungerade perfekt

134 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)