You are not logged in.

  • Login

1

Tuesday, March 31st 2009, 5:19pm

PHP Include, Switch, Code Probleme

Hallo Gemeinde,
habe da ne Frage. Habe jetzt da für meine Navigation und meine Contenseiten die in die index.php geladen werden 2 Codeschnippsel, die ich gerne zusammenführen würde zu einem.

Teil 1:

PHP Quellcode

1
2
3
4
5
6
7
8
9
10
11
<?php
if ($_GET['dk'] == 'anasayfa') 
{
$css_style = 'id=nav01on';
} 
else
{
$css_style = 'id=nav01';
}
echo '<li '.$css_style.'><a href="index.php?dk=anasayfa"><span>Anasayfa</span></a></li>';
?>


Teil2:

PHP Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
if(isset($_GET['dk'])){
    switch($_GET['dk']){
        case 'anasayfa' :
            include('includes/anasayfa.php');
            break;
        case 'hakkimizda' :
            include('includes/hakkimizda.php');
            break;
        case 'multimedia' :
            include('includes/multimedia.php');
            break;
        case 'forum' :
            include('includes/forum.php');
            break;
        case 'iletisim' :
            include('includes/iletisim.php');
            break;
        case 'kunye' :
            include('includes/kunye.php');
            break;
        default :
            include('includes/error.php');
            break;
        }
    }else{
        include('includes/anasayfa.php');
    }
?>


Und am besten noch zu Teil 2 ne möglichkeit, das er gleichzeitig mein Submenü aufruft. Aber irgendwie bin ich total mit php überfordert.
Jetzt schonmal großen Dank! LG VOLKAN

This post has been edited 1 times, last edit by "VOLKAN" (Mar 31st 2009, 7:13pm)


2

Wednesday, April 1st 2009, 6:12pm

hi,

wo genau lag dein problem? die beides codes zusammenzuführen.
Das ginge zum Beispiel so:

PHP Quellcode

1
2
3
4
5
6
7
8
9
10
11
<?php
if(isset($_GET['dk'])){
    $css_style = 'id=nav01';
    switch($_GET['dk']){
        case 'anasayfa' :
            $css_style = 'id=nav01on';
            include('includes/anasayfa.php');
            break;
        case 'hakkimizda' :
            include('includes/hakkimizda.php');
	// ...


ansonsten erläutere nochmal genauer dein Vorhaben,
Lg

3

Thursday, April 2nd 2009, 3:07am

Hey
d0nut! Das Problem ist, das es totaler Schwachsinn war und es gar nicht
hätte funktionieren können was ich habe machen wollen. Daher, Sorry!
Habe jedoch das ganze nun überdacht und mein eigentliches Problem festgestellt :-)

Teil 1:

PHP Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
			if ($_GET['dk'] == 'anasayfa'){
				$css_style = 'id=nav01on';
			}else{
				$css_style = 'id=nav01';}
				echo '<li '.$css_style.'><a href="index.php?dk=anasayfa"><span>Anasayfa</span></a></li>';
 
			$sub='';
			if ($_GET['dk'] == 'hakkimizda'){
				$css_style = 'id=nav02on';
				   $sub.='<div id="headerSubNavBar">';
               	$sub.='<ul>';
               	$sub.='<li id="subnav01"><a href="index.php?dk=inanckurulu"><span>Inanc Kurulu</span></a></li>';
               	$sub.='<li id="subnav02"><a href="index.php?dk=hakkimizda"><span>Yönetim Kurulu</span></a></li>';
               	$sub.='<li id="subnav03"><a href="index.php?dk=hakkimizda"><span>Kadinlar Kolu</span></a></li>';
               	$sub.='<li id="subnav04"><a href="index.php?dk=hakkimizda"><span>Genclik Kolu</span></a></li>';
               	$sub.='</ul>';
				   $sub.='</div>';
			}else{
				$css_style = 'id=nav02';}
				echo '<li '.$css_style.'><a href="index.php?dk=hakkimizda"><span>Hakkimizda</span></a>'.$sub.'</li>';
 
 
			if ($_GET['dk'] == 'multimedia'){
				$css_style = 'id=nav03on';
			}else{
				$css_style = 'id=nav03';}
				echo '<li '.$css_style.'><a href="index.php?dk=multimedia"><span>Multimedia</span></a></li>';
 
 
			if ($_GET['dk'] == 'forum'){
				$css_style = 'id=nav04on';
			}else{
				$css_style = 'id=nav04';}
				echo '<li '.$css_style.'><a href="index.php?dk=forum"><span>Forum</span></a></li>';
 
 
			if ($_GET['dk'] == 'iletisim'){
				$css_style = 'id=nav05on';
			}else{
				$css_style = 'id=nav05';}
				echo '<li '.$css_style.'><a href="index.php?dk=iletisim"><span>Iletisim</span></a></li>';
 
 
			if ($_GET['dk'] == 'kunye'){
				$css_style = 'id=nav06on';
			}else{
				$css_style = 'id=nav06';}
				echo '<li '.$css_style.'><a href="index.php?dk=kunye"><span>Kunye</span></a></li>';
		?>


So
sieht nun der Aufbau meiner Navigation in meiner header.php aus. Das
Problem ist, das es verschachtelt ist und auch Sub/Sub Menüs haben
soll. Hat es auch, jedoch wenn ich auf einen der Sub-Menü Punkte
Klicke, funktioniert es zwar, aber das Sub-Menü wird nicht wieder
angezeigt.

Beispiel:

Teil 2:

PHP Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$sub='';
			if ($_GET['dk'] == 'hakkimizda'){
				$css_style = 'id=nav02on';
				   $sub.='<div id="headerSubNavBar">';
               	$sub.='<ul>';
               	$sub.='<li id="subnav01"><a href="index.php?dk=inanckurulu"><span>Inanc Kurulu</span></a></li>';
               	$sub.='<li id="subnav02"><a href="index.php?dk=hakkimizda"><span>Yönetim Kurulu</span></a></li>';
               	$sub.='<li id="subnav03"><a href="index.php?dk=hakkimizda"><span>Kadinlar Kolu</span></a></li>';
               	$sub.='<li id="subnav04"><a href="index.php?dk=hakkimizda"><span>Genclik Kolu</span></a></li>';
               	$sub.='</ul>';
				   $sub.='</div>';
 
			}else{
 
				$css_style = 'id=nav02';}
 
				echo '<li '.$css_style.'><a href="index.php?dk=hakkimizda"><span>Hakkimizda</span></a>'.$sub.'</li>';


Das
ist die Ober-Kategorie "Hakkimizda". Das Submenü sind das 01 Inanc
Kurulu, 02 Yönetim Kurulu, 03 Kadinlar Kolu, 04 Genclik Kolu.
Bis
hier hin funktioniert das auch! Aber wenn ich z.B auf 01 Inanc Kurulu
bin, wird das Sub-Menü wieder ausgeblendet. d.h der Code sollte in etwa
so dann aussehen, das mein Untermenü eine Art Untermenü anzeige hat,
die dann wiederrum angezeigt wird und das dann auch noch mit der
richtigen id z.b id="subnav01" sollte dann werden nach klick
id="subnav01on" ...

Zum Aufbau ist zu sagen, das ich eine
index.php, header.php und footer.php habe. In die index.php wird per
include die header.php, die footer.php und der Contentbereich mittels:

PHP Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
if(isset($_GET['dk'])){
	switch($_GET['dk']){
    	case 'anasayfa' :
        	include('includes/anasayfa.php');
        	break;
    	case 'hakkimizda' :
        	include('includes/hakkimizda.php');
        	break;
    	case 'multimedia' :
        	include('includes/multimedia.php');
        	break;
    	case 'forum' :
        	include('includes/forum.php');
        	break;
    	case 'iletisim' :
        	include('includes/iletisim.php');
        	break;
    	case 'kunye' :
        	include('includes/kunye.php');
        	break;
    	case 'siteharitasi' :
        	include('includes/siteharitasi.php');
        	break;
    	case 'inanckurulu' :
        	include('includes/inanckurulu.php');
        	break;
    	default :
        	include('includes/error.php');
        	break;
    	}
	}else{
    	include('includes/anasayfa.php');
	}
?>


...dem hier hineingeladen.

In der header.php stehen die ganzen Navigations-Daten drinne. Siehe Teil 1.

ich hoffe du kannst mir dabei behilflich sein.. komme echt seit 2 Tagen nicht weiter :(
Achja und sorry das der Code so Chaotisch aussieht :(

Danke! LG Volkan

This post has been edited 1 times, last edit by "VOLKAN" (Apr 2nd 2009, 3:13am)


4

Thursday, April 2nd 2009, 9:19am

Ich versuchs erstmal mit einer kurzen Antwort.
Wenn du Haupt- und Unternavigation haben willst dann hast du zwei Möglichkeiten.

Du stellst diese Kategorien irgendwie miteinander in Verbindung. (Datenbankrelation).. oder ein verschachteltes Array, etc.
Die Datenbank ist die einfachste Lösung.

Weg zwei ist nicht ganz so schon, aber dafür sehr einfach.
Du verwendest eine Variable für die Hauptnavigation und eine Variable für die Unternavigation.

Beispiel:
index.php?cat=Hakkimizda&subcat=InancKurulu

sub sorgt dann dafür welche Hauptkategorie geladen wird. Und in dieser Hauptkategorie fragst du einfach noch $_GET[subcat] ab.
Um die Navigation zu markieren benötigst du natürlich auch mehrere Fälle die nicht nur nach dem Ausschlussprinzip arbeiten.
Das heißt du darfst kein if/else if/else if/else if für alles machen.. sondern eben ein Switch für die Hauptkategorie und ein Switch je Unterkategorie.

Lg

5

Thursday, April 2nd 2009, 1:47pm

Danke d0nut für deine Hilfe!
Habe das Problem jetzt lösen können. Bin zwar anders vorgegangen, aber es hat geklappt :)

This post has been edited 2 times, last edit by "VOLKAN" (Apr 3rd 2009, 4:44am)


Social bookmarks