Bilder includen ?

emonem

Erfahrenes Mitglied
Hi,

ich habe eine Page in der ich die Unterseiten per Include einfüge. Jetzt hab ich im Header einen CSS Container angelegt in dem jeweils eine bestimmte Headergrafik für die einzelnen Unterseiten angezeigt werden soll sobald diese aufgerufen werden. Ich dachte mir das ich dies auch per PHP Include lösen könnte, also soetwa:
PHP:
<div id="headerpiccontainer"> 
<?php switch($id) { default: include('_images/bild1.jpg');break; 
case "link1": include('_images/bild2.jpg');break; 
case "link2": include('_images/bild3.jpg');
..usw...
} 
?></div>
Klappt aber nicht, da dachte ich mir das ich die jeweiligen Grafiken in einzelne html Dokumente lege
In den Dokumenten steht dann zB. soetwas
PHP:
<img src="bild.jpg" width="292" height="132">

In meinem CSS Container wo die Bilder includet werden sollen hab ich dann diesen Code eingetragen:

PHP:
<div id="headerpiccontainer"> 
<?php switch($id) { default: include('_images/bild1.php');break; 
case "link1": include('_images/bild2.php');break;
case "link2": include('_images/bild3.php');
..usw...
} 
?></div>

Das Funktioniert aber auch nicht. Weiß jemand wie ich es lösen kann? Wäre für ein Bsp. sehr dankbar.

Gruß
 
Wie wäre es mit einem einfachen <img>?
PHP:
<div id="headerpiccontainer"> 
<?php 
if(isset($id)) {switch($id) { 
case "link1": echo '<img src="bildx.jpg">'; break; 
case "link2": echo '<img src="bildx.jpg">'; break;
# usw.
default: echo '<img src="bildx.jpg">';
} 
}
?></div>
Den default include solltest du immer ans Ende setzen.
PHP Doc hat gesagt.:
Ein Spezialfall ist default. Dieser Fall trifft auf alles zu, was nicht von den voranstehenden case-Ausdrücken erfasst wurde und sollte als letzte case Anweisung angegeben werden.
Weiterhin solltest du vor einem Switch abfragen ob die Variable gesetzt ist, da es sonst eine Fehlermeldung gibt, wie dieser (wenn PHP auf E_ALL als error_reporting() gestellt ist)
Notice: Undefined variable: test in test.php on line 1
 
Hi,

ok, hab jetzt diesen code genommen und den im meinen Container eingefügt.
PHP:
<div id="headerpiccontainer"> 
<?php 
if(isset($id)) {switch($id) { 
case "link1": echo '<img src="bildx.jpg">'; break; 
case "link2": echo '<img src="bildx.jpg">'; break;
# usw.
default: echo '<img src="bildx.jpg">';
} 
}
?></div>

Funktioniert auch soweit.
Die Bilder werden ausgetauscht wenn ich auf die einzelnen links klicke, aber das default Bild wird nicht angezeigt wenn ich die index.php aufrufe.
Hab den Pfad und Dateinamen überprüft. Alles richtig soweit. Ist am code was falsch?
 
Sorry, mein Fehler, momentan kann es ja keinen Default geben, da dieser nur eintritt, wenn $id leer ist, versuchs mal so:
PHP:
<div id="headerpiccontainer"> 
<?php 
if(!isset($id)) { $id = ""; }
switch($id) { 
case "link1": echo '<img src="bildx.jpg">'; break; 
case "link2": echo '<img src="bildx.jpg">'; break;
# usw.
default: echo '<img src="bildx.jpg">';
} 
?></div>
 
Hallo,

hatte eben das gleiche Problem. Allerdings hatte ich das ganze so geschrieben:
PHP:
echo "<img...>"
und es hat nicht funktioniert. Was macht den Unterschied zwischen " und '?
 
Den Unterschied macht der Inhalt aus:
PHP:
echo "<img src="bla.jpg" />";
Erzeugt einen Error, da PHP erwartet, dass das Echo unterbrochen wird. Deshalb ist es in diesem Fall besser ein einfaches Anführungszeichen zu verwenden. (Man sieht auch im Syntax Highlight, dass es nicht richtig ist.)
PHP:
echo '<img src="bla.jpg" />';
Siehe, es wird nicht unterbrochen.
Ein weiterer Unterschied ist, dass PHP Code zwischen '' ignoriert wird.
PHP:
$bla = "juhu";
echo 'ganz viel text $bla und noch mehr text'; # Ausgabe: ganz viel text $bla und noch mehr text
echo "ganz viel text $bla und noch mehr text"; # Ausgabe: ganz viel text juhu und noch mehr text
Gibt bestimmt noch eine Seite in der PHP Doku darüber, aber ich finde grad nix.
[phpf]echo[/phpf]
Auf dieser Seite steht ähnliches in den Beispielen.
 
Zurück