Include aber mit anderer DIV Class

zyclop

Erfahrenes Mitglied
Hallo Zusammen

Ich habe folgendes Problem. Ich habe eine Index.php welche den Inhalt included. Das Sieht so aus.

PHP:
		<div id="content">
			<?php 
				switch($_GET['cont']) { 
				case "home": include("_cont/cont.home.php");   
				break;
				case "fly": include("_cont/cont.fly.php");   
				break;
				case "links": include("_cont/cont.links.php");   
				break;
				case "partner": include("_cont/cont.partner.php");   
				break;
				case "contact": include("_cont/cont.contact.php");   
				break;
				case "hotel": include("_cont/cont.hotel.php");   
				break;
				case "interhome": include("_cont/cont.interhome.php");   
				break;									
				case "car": include("_cont/cont.car.php");   
				break;	
				case "bus": include("_cont/cont.bus.php");   
				break;	
				default : include("_cont/cont.home.php"); 
				break; 
				}  
			?>	
		</div>

Nun muss ich aber eine Seite anstatt mit dem Div Content mit dem DIV Content_forth öffnen. Ich habe mir das etwa so vorgestellt. Pseudocode:

PHP:
		<div id="content">
			<?php 
				switch($_GET['cont']) { 
				case "home": include("_cont/cont.home.php");   
				break;
                                IF ferry DANN DIV = Content_forth 
				case "ferry": include("_cont/cont.ferry.php");   
				break;
				case "fly": include("_cont/cont.fly.php");   
				break;
				case "links": include("_cont/cont.links.php");   
				break;
				case "partner": include("_cont/cont.partner.php");   
				break;
				case "contact": include("_cont/cont.contact.php");   
				break;
				case "hotel": include("_cont/cont.hotel.php");   
				break;
				case "interhome": include("_cont/cont.interhome.php");   
				break;									
				case "car": include("_cont/cont.car.php");   
				break;	
				case "bus": include("_cont/cont.bus.php");   
				break;	
				default : include("_cont/cont.home.php"); 
				break; 
				}  
			?>	
		</div>

Alle anderen Seiten sollen mit der Div Klasse Content geöffnet werden. Hat jemand eine Idee wie ich das Lösen kann? Oder bleibt mir nur die Möglichkeit die Div Classe in die Includede Seite einzutragen?

gruss Zyclop
 
Probier es mal damit:
PHP:
<?php
$id = 'content';
ob_start();

switch($_GET['cont']) {
    case 'home':
        include '_cont/cont.home.php';
        break;

    case 'fly':
        $id = 'content_forth';
        include '_cont/cont.fly.php';
        break;

    case 'links':
        include '_cont/cont.links.php';
        break;

    case 'partner':
        include '_cont/cont.partner.php';
        break;

    case 'contact':
        include '_cont/cont.contact.php';
        break;

    case 'hotel':
        include '_cont/cont.hotel.php';
        break;

    case 'interhome':
        include '_cont/cont.interhome.php';
        break;

    case 'car':
        include '_cont/cont.car.php';
        break;

    case 'bus':
        include '_cont/cont.bus.php';
        break;

    default:
        include '_cont/cont.home.php';
        break;
                }

$content = ob_get_clean();

echo '<div id="'.$id.'">'."\n";
echo $content;
echo '</div>';
?>
 
Hallo

Vielen Dank für die Antwort. Das hat Prima funktioniert. Nun ist aber das Problem das ich gleich drei DIVs ändern muss.

Wenn die index.php geladen wird resp. home geklickt wird, müssen diese Divs geladen werden.
- menu_forth
- content_forth
- content_ground_forth

Wenn andere Seiten aufgerufen werden müssen diese divs eingesetzt werden
- menu_normal
- content_normal
- content_ground_forth

Nun habe ich in einem ersten Versuch, versucht menu_forth und content_fort zu implementieren. Aber leider funktioniert das nicht wie gewünscht.

PHP:
				<!-- Navigation Links oben -->
				<?php 
				$id_menu ='menu_normal';
				ob_start();
				switch($_GET['lang']) { 
					case "en": 
						include("_nav/nav.en.php");  
						break; 
					case "fr": include("_nav/nav.fr.php");   
						break;
					case "it": include("_nav/nav.it.php");   
						break; 
					default : include("_nav/nav.de.php");
						break; 
				}  
			$lang = ob_get_clean();						 
			echo '<div id="'.$id_menu.'">'."\n";
			echo '<ul>';
			include ("_nav/nav.lang.php");
			echo $lang;
			echo '</ul>';
			echo '</div>';
			
			echo '<div id="content_ground_normal">';
			
						$id_content ='content_normal';
						$id_menu ='menu_normal';
						ob_start();
						switch($_GET['cont']) {
							case "home": 
								$id_content = 'content_forth';
								$id_menu = 'menu_forth';
								include("_cont/cont.home.php");   
								break;
							
							case "fly": 
								include("_cont/cont.fly.php");   
								break;
							
							case "links": 
								include("_cont/cont.links.php");   
								break;
							
							case "partner": 
								include("_cont/cont.partner.php");   
								break;
							
							case "contact": 
								include("_cont/cont.contact.php");   
								break;
							
							case "hotel": 
								include("_cont/cont.hotel.php");   
								break;
							
							case "interhome": 
								include("_cont/cont.interhome.php");   
								break;									
							
							case "car": 
								include("_cont/cont.car.php");   
								break;	
							
							case "bus": 
								include("_cont/cont.bus.php");   
								break;								
							default : include("_cont/cont.home.php");
							$id_content = 'content_forth';
							$id_menu = 'menu_forth';
							break; 
							}
							$content = ob_get_clean();						 
							echo '<div id="'.$id_content.'">'."\n";
							echo $content;
							echo '</div>';
					?>

			<?php include ("_nav/nav.r.php"); ?>
			</div>
			<br>

Kannst du mir evtl. erklären, wie ich diese Variable abhängig machen kann? Diese ganze rotation ist ja eigentlich von einer Variable abhängig. Habe auch versucht den Content Teil vor der Navigation zu implementieren, jedoch versaut dies dann das ganze Layout.

gruss zyclop
 
Der erste teil funktioniert. Wie du beschrieben hast:

PHP:
					<?php
						$id = 'content_normal';
						ob_start();
						 
						switch($_GET['cont']) {
							case 'home':
								$id = 'content_forth';
								include '_cont/cont.home.php';
								break;
						 
							case 'fly':
								include '_cont/cont.fly.php';
								break;
						 
							case 'links':
								include '_cont/cont.links.php';
								break;
						 
							case 'partner':
								include '_cont/cont.partner.php';
								break;
						 
							case 'contact':
								include '_cont/cont.contact.php';
								break;
						 
							case 'hotel':
								include '_cont/cont.hotel.php';
								break;
						 
							case 'interhome':
								include '_cont/cont.interhome.php';
								break;
						 
							case 'car':
								include '_cont/cont.car.php';
								break;
						 
							case 'bus':
								include '_cont/cont.bus.php';
								break;
						 
							default:
								include '_cont/cont.home.php';
								$id = 'content_forth';
								break;
										}
						 
						$content = ob_get_clean();
						 
						echo '<div id="'.$id.'">'."\n";
						echo $content;
						echo '</div>';
					?>

Jedoch muss ich nun drei Div klassen ändern und ich kriege es einfach nicht hin.

Ich habe mir folgendes Vorgestellt:

PHP:
	<body>
		<div id="ballina">
			<div id="banneri"><img src="http://www.tutorials.de/forum/images/banner.jpg" width="1024" height="173" />
			</div>
				<div id="menu_normal
				<!-- Navigation Links oben -->
				<?php
				ob_start();				
				switch($_GET['lang']) { 
					case "en": 
						include("_nav/nav.en.php");  
						break; 
					case "fr": include("_nav/nav.fr.php");   
						break;
					case "it": include("_nav/nav.it.php");   
						break; 
					default : include("_nav/nav.de.php");
						break; 
				} 
				$id_menu ='menu_normal';
				ob_start();
				switch($_GET['cont']) { 
					case "home": 
						$id_menu = 'menu_forth';
						break;  
					default : 	$id_menu = 'menu_normal';
						break; 
				}  
				
						$id_content ='content_normal';
						$id_menu ='menu_normal';
						ob_start();
						switch($_GET['cont']) {
							case "home": 
								$id_content = 'content_forth';
								$id_menu = 'menu_forth';
								include("_cont/cont.home.php");   
								break;
							
							case "fly": 
								include("_cont/cont.fly.php");   
								break;
							
							case "links": 
								include("_cont/cont.links.php");   
								break;
							
							case "partner": 
								include("_cont/cont.partner.php");   
								break;
							
							case "contact": 
								include("_cont/cont.contact.php");   
								break;
							
							case "hotel": 
								include("_cont/cont.hotel.php");   
								break;
							
							case "interhome": 
								include("_cont/cont.interhome.php");   
								break;									
							
							case "car": 
								include("_cont/cont.car.php");   
								break;	
							
							case "bus": 
								include("_cont/cont.bus.php");   
								break;								
							default : include("_cont/cont.home.php");
							$id_content = 'content_forth';
							$id_menu = 'menu_forth';
							break; 
							}			
				
			$lang = ob_get_clean();				
			echo '<div id="'.$id_menu.'">'."\n";
			echo '<ul>';
			echo $lang;
			echo '</ul>';
			echo '</div>';
			
			echo '<div id="content_ground_forth">';
			
			$content = ob_get_clean();						 
			echo '<div id="'.$id_content.'">'."\n";
			echo $content;
			echo '</div>';
			
			include ("_nav/nav.r.php");
			echo '</div>';
			?>
			<br>

Leider versaut es mir so das ganze Template und es wird nicht korrekt angezeigt.

Wie kann ich beim oberen Code, das so ändern das wenn die Variable Home ist oder leer ist dann sollen folgende Divs geladen werden.

HTML:
<div id="menu_forth">
<div id="content_ground_forth">
<div id="content_forth">

sonst sollen diese Divs geladen werden.

HTML:
<div id="menu_normal">
<div id="content_ground_normal">
<div id="content_normal">

Die Divs müssen sauber geschlossen werden und sind in einander verschachtelt. Das erste und das dritte Div includen Inhalt. Das zweite Div content_ground_normal, ist einfach da damit es korrekt angezeigt wird, also kein Include.

Wie kann ich das anstellen, dass wenn es home oder normal index.php ist, dann sollen die Forth divs Geladen werden, sonst die normal Div. Kling einbisschen kompliziert. Aber ich hoffe ihr blickt durch. Sonst gerne Rückfragen, komme im moment wirklich nicht weiter.

Vielen dank im voraus
gruss zyclop
 
Zuletzt bearbeitet:
Ich glaube du gehst die Reihenfolge einfach falsch durch.

Ich denke der Code müsste c.a. wie folgt aussehen:
PHP:
ob_start(); 
[switch case anweisung für lang]
$lang= ob_get_clean(); 

ob_start(); 
[switch case anweisung für content]
$content = ob_get_clean(); 

echo '<div id="'.$id_menu.'">'."\n";
echo '<ul>';
echo $lang;
echo '</ul>';
echo '</div>';
            
echo '<div id="content_ground_forth">';           
echo '<div id="'.$id_content.'">'."\n";
echo $content;
echo '</div>';
include ("_nav/nav.r.php");
echo '</div>';

Ich hoffe das hilft.
 
Hey michele, vielen Dank.

Wenn ich es so versuche, bleiben beide Divs leer. Vor allem muss ich noch das dritte div auch ändern.


Ich weiss nicht funktioniert.

So sieht jetzt der Code aus.

PHP:
			<?php
			ob_start();  					
			switch($_GET['lang']) { 
				case "en": 
					include("_nav/nav.en.php");  
					break; 
				case "fr": include("_nav/nav.fr.php");   
					break;
				case "it": include("_nav/nav.it.php");   
					break; 
				default : include("_nav/nav.de.php");
					break; 
			}
				$lang= ob_get_clean();  

				ob_start();  
				switch($_GET['cont']) {
					case 'home':
						include '_cont/cont.home.php';
						break;
						$id = 'content_forth';
					case 'fly':
						include '_cont/cont.fly.php';
						break;
				 
					case 'links':
						include '_cont/cont.links.php';
						break;
				 
					case 'partner':
						include '_cont/cont.partner.php';
						break;
				 
					case 'contact':
						include '_cont/cont.contact.php';
						break;
				 
					case 'hotel':
						include '_cont/cont.hotel.php';
						break;
				 
					case 'interhome':
						include '_cont/cont.interhome.php';
						break;
				 
					case 'car':
						include '_cont/cont.car.php';
						break;
				 
					case 'bus':
						include '_cont/cont.bus.php';
						break;
				 
					default: include '_cont/cont.home.php';
						$id = 'content_forth';
						break;
				}
				$content = ob_get_clean();  

				echo '<div id="'.$id_menu.'">'."\n"; ; <--- bleibt auch leer
				echo '<ul>'; 
				echo $lang; 
				echo '</ul>'; 
				echo '</div>'; 
							 
				echo '<div id="content_ground_forth">';      <---- DIESES DIV müsste auch variabel sein, wenn home geklickt oder index.php geladen wird dann müsste dieses div content_ground_forth geladen werden, sonst content_ground_normal.      
				echo '<div id="'.$id_content.'">'."\n"; <--- bleibt leer
				echo $content; 
				echo '</div>'; 
				include ("_nav/nav.r.php"); 
				echo '</div>';  
			?>

Ist es evtl. möglich dass dieses ID übergeben nicht möglich ist? Wenn mann es zwei mal übergibt? Evtl. müsste ich den Inhalt der ID in eine variable speichern. Ist das möglich?

Wäre cool, wenn mir jemand evtl. einen Tipp geben könnte.

gruss zyclop
 
Zuletzt bearbeitet:
Hallo zusammen habe es nun mit normalen Variablen gelöst, und nicht über diese IDs.

Lösung die funktioniert:

PHP:
			<!-- Navigation Links oben -->
			<?php
			ob_start();  					
			switch($_GET['lang']) { 
				case "en": 
					include("_nav/nav.en.php");  
					break; 
				case "fr": include("_nav/nav.fr.php");   
					break;
				case "it": include("_nav/nav.it.php");   
					break; 
				default : include("_nav/nav.de.php");
					break; 
			}
				$lang= ob_get_clean();
				$idmenu = 'menu_normal';
				$idcontentground = 'content_ground_normal';				
				$idcontent = 'content_normal';
				
				ob_start();  
				switch($_GET['cont']) {
					case 'home':
						$idmenu = 'menu_forth';
						$idcontentground = 'content_ground_forth';
						$idcontent = 'content_forth';
						include '_cont/cont.home.php';
						break;
					case 'fly':
						include '_cont/cont.fly.php';
						break;
				 
					case 'links':
						include '_cont/cont.links.php';
						break;
				 
					case 'partner':
						include '_cont/cont.partner.php';
						break;
				 
					case 'contact':
						include '_cont/cont.contact.php';
						break;
				 
					case 'hotel':
						include '_cont/cont.hotel.php';
						break;
				 
					case 'interhome':
						include '_cont/cont.interhome.php';
						break;
				 
					case 'car':
						include '_cont/cont.car.php';
						break;
				 
					case 'bus':
						include '_cont/cont.bus.php';
						break;
				 
					default: include '_cont/cont.home.php';
						$idmenu = 'menu_forth';
						$idcontentground = 'content_ground_forth';
						$idcontent = 'content_forth';
						break;
				}
				$content = ob_get_clean();  

				echo '<div id="'.$idmenu.'">'."\n"; 
				echo '<ul>'; 
				echo $lang; 
				echo '</ul>'; 
				echo '</div>'; 
				
				echo '<div id="'.$idcontentground.'">'."\n"; 				
				echo '<div id="'.$idcontent.'">'."\n"; 
				echo $content; 
				echo '</div>'; 
				include ("_nav/nav.r.php"); 
				echo '</div>';  
			?>

Eine Frage habe ich noch bevor ich das Thema abschliesse. Ich habe zwar nachgelesen was diese Funktionienen machen, komme aber nicht ganz nach.

Kann mir jemand erklären was folgende Programmteile genau machen, resp. für was sie da sind.
PHP:
				$lang= ob_get_clean();
				ob_start();  
				$content = ob_get_clean();

Wäre noch cool zu verstehen was diese drei befehle machen und ob ich diese aus dem Code entfernen kann.
 

Neue Beiträge

Zurück