Probleme mit dem dynamische Inhalte nachladen

alter_anfaenger

New member
Hallo liebe Leute,

ich habe folgendes.....

HTML:
<nav class="bild_menue">
		<ul>
   			<li><a class="eins" href="?dir=punkt1">1</a></li>
			<li><a class="zwei" href="?dir=punkt2">2</a></li>
			<li><a class="drei" href="?dir=punkt3">3</a></li>
			<li><a class="vier" href="?dir=punkt4">4</a></li>
			<li><a class="fuenf" href="?dir=punkt5">5</a></li>
			<li><a class="sechs" href="?dir=punkt6">6</a></li>
			<li><a class="sieben" href="?dir=punkt7">7</a></li>			
		</ul> 
	</nav>
	
	
	
	
	<div class="fotobox">
		
		  
		<?php  
			if(isset($_GET['dir']) && !empty($_GET['dir'])) {
			$direction = $_GET['dir'];
			} else {
			$direction = false;
			}

			$sites = array (
			'punkt1' => 'punkt1.php',
			'punkt2' => 'punkt2.php',
                        'punkt3' => 'punkt3.php',
                        'punkt4' => 'punkt4.php',
                        'punkt5' => 'punkt5.php',
                        'punkt6' => 'punkt6.php',
                        'punkt7' => 'punkt7.php'
			);

			if ($direction == false) {
			$direction = $sites['punkt1.php'];
			}

			if( isset($sites[$dir]) ) {
			include_once('./'.$sites[$dir]);
			} else {
			header('HTTP/1.0 404 Not Found');
			include_once('./'.$sites['punkt1.php']);
			}
		?>	
		
	</div>

Aber irgendwie funktionier das Ganze nicht, wo liegt da mein Denkfehler.
Mit der BITTE um KORREKTUR!!!!

Grüsse T.
 
Zuletzt bearbeitet von einem Moderator:
*verschoben aus Allgemein/Forum*

Wenn du eine Frage zu JS/Ajax hast macht es mehr Sinn, keinen PHP Code zu zeigen sondern das, was im Browser ankommt.
 
"Funktioniert nicht" ist keine besonders gute Fehlerbeschreibung... was funktioniert denn genau nicht? Welche Fehlermeldungen wirft denn PHP raus? Hast du das error_reporting auch auf E_ALL gestellt?

Wie in dem anderen Thread ist hier auch die Variable $dir nicht definiert.

PS: deine Standardaktionen für $direction === false und wenn es nicht im Array ist sind falsch. Zum einen musst du $direction den Key im Array zuweisen und nicht den Wert. Zum anderen hat der Key im Array kein ".php" am Ende. Prinzipiell kann man das extrem vereinfachen.
PPS: Vor dem Aufruf von header() darf nichts ausgegeben werden, denn sonst kann der Header nicht mehr gesendet werden.

PHP:
<?php # muss ganz am Anfang stehen, da sonst der Aufruf von header() ev. nicht funktioniert.
	$sites = array(
		'punkt1' => 'punkt1.php',
		'punkt2' => 'punkt2.php',
		'punkt3' => 'punkt3.php',
		'punkt4' => 'punkt4.php',
		'punkt5' => 'punkt5.php',
		'punkt6' => 'punkt6.php',
		'punkt7' => 'punkt7.php'
	);
	if(array_key_exists("dir", $_GET) && !empty($_GET['dir'])){
		$direction = $_GET['dir'];
		if (!array_key_exists($direction, $sites)){
			$direction = "punkt1";
			header('HTTP/1.0 404 Not Found');
		}
	} else {
		$direction = "punkt1";
	}
?>

... das ganze HTML vor dem Menü

<nav class="bild_menue">
	<ul>
		<li><a class="eins" href="?dir=punkt1">1</a></li>
		<li><a class="zwei" href="?dir=punkt2">2</a></li>
		<li><a class="drei" href="?dir=punkt3">3</a></li>
		<li><a class="vier" href="?dir=punkt4">4</a></li>
		<li><a class="fuenf" href="?dir=punkt5">5</a></li>
		<li><a class="sechs" href="?dir=punkt6">6</a></li>
		<li><a class="sieben" href="?dir=punkt7">7</a></li>
	</ul>
</nav>
<div class="fotobox">
<?php
	echo $sites[$direction];
	# include_once('./'.$sites[$direction]);
?>
</div>
 
Eine nachfrage habe ich noch:

PHP:
     <?php # muss ganz am Anfang stehen, da sonst der Aufruf von header() ev. nicht funktioniert.
        $sites = array(
            'punkt1' => 'punkt1.php',
            'punkt2' => 'punkt2.php',
            'punkt3' => 'punkt3.php',
            'punkt4' => 'punkt4.php',
            'punkt5' => 'punkt5.php',
            'punkt6' => 'punkt6.php',
            'punkt7' => 'punkt7.php'
        );
        if(array_key_exists("dir", $_GET) && !empty($_GET['dir'])){
            $direction = $_GET['dir'];
            if (!array_key_exists($direction, $sites)){
                $direction = "punkt1";
                header('HTTP/1.0 404 Not Found');
            }
        } else {
            $direction = "punkt1";
        }
    ?>

    ... das ganze HTML vor dem Menü

    <nav class="bild_menue">
        <ul>
            <li><a class="eins" href="?dir=punkt1">1</a></li>
            <li><a class="zwei" href="?dir=punkt2">2</a></li>
            <li><a class="drei" href="?dir=punkt3">3</a></li>
            <li><a class="vier" href="?dir=punkt4">4</a></li>
            <li><a class="fuenf" href="?dir=punkt5">5</a></li>
            <li><a class="sechs" href="?dir=punkt6">6</a></li>
            <li><a class="sieben" href="?dir=punkt7">7</a></li>
        </ul>
    </nav>
    <div class="fotobox">
    <?php
        echo $sites[$direction];
        # include_once('./'.$sites[$direction]);
    ?>
    </div>

wenn ich den oben stehenden Code zweimal auf einer Seite anwenden möchte, in zwei unterschiedlichen div`s
je ein Menue (so wie das php oben!), sagen wir mal im einem linken div soll die auswahl zwischen zwei Einleitungstexten
sein im rechten die Auswahl zwischen 7 Fotos,
dann kommen die zwei php-codes irgendwie durcheinander,
es scheint mir so das wenn ich beispielsweise die Auswahl zwischen 7 Fotos tätige dann springt links im div die
Auswahl zur Ursprungs-Einstellung!!!!
Woran liegt das?
Ich habe beim Menue "der Auswahl zwischen zwei Einleitungstexten" andere Variablen benutzt.
Muss ich die Variablen (von beiden Menues) in sessions speichern?
Welche Variablen müsste ich dann speichern?
Doch wohl "$dir" oder "$direction"??? Richtig?
Wie sähe das aus?

Danke schon mal!!!!

Gruss E.
 
Zuletzt bearbeitet:
Eine Session, die die Einstellung speichert, die du gerade nicht änderst, wäre eine Möglichkeit. Aber einfacher wäre es, wenn du dir die URLs der <a>s bei jedem Seitenaufruf dynamisch zusammenbaust.

PHP:
<?php # muss ganz am Anfang stehen, da sonst der Aufruf von header() ev. nicht funktioniert.
        $sites1 = array(
            'punkt1' => 'punkt1.php',
            'punkt2' => 'punkt2.php',
            'punkt3' => 'punkt3.php',
            'punkt4' => 'punkt4.php',
            'punkt5' => 'punkt5.php',
            'punkt6' => 'punkt6.php',
            'punkt7' => 'punkt7.php'
        );
        $sites2 = array(
            'punkt1' => 'punkt1.php',
            'punkt2' => 'punkt2.php',
            'punkt3' => 'punkt3.php',
            'punkt4' => 'punkt4.php',
            'punkt5' => 'punkt5.php',
            'punkt6' => 'punkt6.php',
            'punkt7' => 'punkt7.php'
        );
        if(array_key_exists("dir1", $_GET) && !empty($_GET['dir1'])){
            $dir1 = $_GET['dir1'];
            if (!array_key_exists($dir1, $sites1)){
                $dir1 = "punkt1";
                header('HTTP/1.0 404 Not Found');
            }
        } else {
            $dir1 = "punkt1";
        }
        if(array_key_exists("dir2", $_GET) && !empty($_GET['dir2'])){
            $dir2 = $_GET['dir2'];
            if (!array_key_exists($dir2, $sites2)){
                $dir2 = "punkt1";
                header('HTTP/1.0 404 Not Found');
            }
        } else {
            $dir2 = "punkt1";
        }
    ?>

    ... das ganze HTML vor dem Menü
    <nav class="bild_menue1">
        <ul>
            <li><a class="eins"   href="?dir1=punkt1&dir2=<?php echo $dir2;?>">1</a></li>
            <li><a class="zwei"   href="?dir1=punkt2&dir2=<?php echo $dir2;?>">2</a></li>
            <li><a class="drei"   href="?dir1=punkt3&dir2=<?php echo $dir2;?>">3</a></li>
            <li><a class="vier"   href="?dir1=punkt4&dir2=<?php echo $dir2;?>">4</a></li>
            <li><a class="fuenf"  href="?dir1=punkt5&dir2=<?php echo $dir2;?>">5</a></li>
            <li><a class="sechs"  href="?dir1=punkt6&dir2=<?php echo $dir2;?>">6</a></li>
            <li><a class="sieben" href="?dir1=punkt7&dir2=<?php echo $dir2;?>">7</a></li>
        </ul>
    </nav>
    <nav class="bild_menue2">
        <ul>
            <li><a class="eins"   href="?dir1=<?php echo $dir1;?>&dir2=punkt1">1</a></li>
            <li><a class="zwei"   href="?dir1=<?php echo $dir1;?>&dir2=punkt2">2</a></li>
            <li><a class="drei"   href="?dir1=<?php echo $dir1;?>&dir2=punkt3">3</a></li>
            <li><a class="vier"   href="?dir1=<?php echo $dir1;?>&dir2=punkt4">4</a></li>
            <li><a class="fuenf"  href="?dir1=<?php echo $dir1;?>&dir2=punkt5">5</a></li>
            <li><a class="sechs"  href="?dir1=<?php echo $dir1;?>&dir2=punkt6">6</a></li>
            <li><a class="sieben" href="?dir1=<?php echo $dir1;?>&dir2=punkt7">7</a></li>
        </ul>
    </nav>
 
Zurück
Oben