SELFPHP: Version 5.8.1 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche


International PHP Conference


WebTech Conference



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



PHP Summit


Software Architecture Summit


:: Buchempfehlung ::

Fortgeschrittene CSS-Techniken

Fortgeschrittene CSS-Techniken zur Buchempfehlung
 
HTML5 Days


JavaScript Days


:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Deine Leidenschaft ist die Unterwasserfoto-grafie?


Dann ist Qozido genau das Richtige für Dich!

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler ist da!

www.qozido.de

 


Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 23.08.2004, 15:23:33
MrLongbaugh MrLongbaugh ist offline
Anfänger
 
Registriert seit: May 2004
Beiträge: 90
MrLongbaugh befindet sich auf einem aufstrebenden Ast
array schreiben und auslesen

Hallo,

eine Liste (zur Navigation) soll aus einem Array ausgelesen werden.
Das Ergebnis soll so aussehen:

<ul>
<li><a href="#" class="daddy">Produkte</a>
<ul>
<li><a href="#">1</a>
</li>
<li><a href="#">2</a>
</li>
...
<li><a href="#">7</a>
</li>
</ul>
</li>
<li><a href="#" class="daddy">Tipps</a>
<ul>
<li><a href="#">Erfahrungsberichte</a></li>
<li><a href="#">Wartung</a></li>
<li><a href="#">FAQ</a></li>
</ul>
</li>


Nun möchte ich zuerst ein Array erstellen, welches dann ausgelesen wird und anschließend das HTML erstellt.

Ich möchte keine fertigen Lösungen. Vielleicht kann jmd. jedoch ein paar Ideen geben, wie das angehe.

Danke schon einmal.

MrLongbaugh
Mit Zitat antworten
  #2  
Alt 23.08.2004, 16:37:53
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
xabbuh befindet sich auf einem aufstrebenden Ast
Der Array könnte so aussehen:

PHP-Code:
<?php
    $navi 
= array(
                
"Produkte" => array(
                                    
"1",
                                    
"2"
                                
),
                
"Tipps"    => array(
                                    
"Erfahrungsberichte",
                                    
"Wartung"
                                
)
            );
?>
Für jeden Obermenüpunkt hat das Array also ein Element, wenn Untertypen existieren, wird für dieses Element wieder ein Array angelegt.

Die Ausgabe kann dann mit einer rekursiven Funktion erfolgen.
Mit Zitat antworten
  #3  
Alt 23.08.2004, 16:58:59
MrLongbaugh MrLongbaugh ist offline
Anfänger
 
Registriert seit: May 2004
Beiträge: 90
MrLongbaugh befindet sich auf einem aufstrebenden Ast
und wo wie kann ich die URL angeben?

An ein mehrdimensionales Array habe ich auch schon gedacht.
Wie kann ich jedoch zu dem Menuepunkt die URL dort unterbringen?

Danke schon einmal.
Mit Zitat antworten
  #4  
Alt 23.08.2004, 17:10:09
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
xabbuh befindet sich auf einem aufstrebenden Ast
Vielleicht so was:
PHP-Code:
<?php
    $navi 
= array(
                
"Produktion" => array(
                                    
"url"    => "produktion.php",
                                    
"subKat" => array(
                                                    
"1" => array(
                                                                
"url" => "1.php"
                                                            
),
                                                    
"2" => array
                                                                
"2.php"
                                                            
)
                                                )
                                )
            );
?>
Mit Zitat antworten
  #5  
Alt 23.08.2004, 17:23:10
MrLongbaugh MrLongbaugh ist offline
Anfänger
 
Registriert seit: May 2004
Beiträge: 90
MrLongbaugh befindet sich auf einem aufstrebenden Ast
kann ich das dann über ARRAYS abbilden?

Dein Vorschlag sieht nach einem Kunstgriff aus.
Sollte ich besser mit mehreren Arrays arbeiten?

Mit dem Einfügen der URL als 'url' und dann der Kategorie 'sub' bringe ich meine Struktur doch durcheinander, oder?
Mit Zitat antworten
  #6  
Alt 23.08.2004, 17:33:30
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
xabbuh befindet sich auf einem aufstrebenden Ast
Ich hätte gesagt, dass es funktioniert, wenn du ungefähr so die Funktion hast:

PHP-Code:
<?php
    
function CreateMenu($navi)
    {
        if(
is_array($navi)) {
            foreach(
$navi as $kat => $row) {
                echo 
'<ul>';
                echo 
'<a href="' $row['url'] . '">' $kat '</a>';

                if(
is_array($row['subKat'])) {
                    foreach(
$row['subKat'] as $subKat) {
                        
CreateMenu($subKat);
                    }
                }
                echo 
'</ul>';
            }
        }
    }
?>
Mit Zitat antworten
  #7  
Alt 23.08.2004, 17:45:42
MrLongbaugh MrLongbaugh ist offline
Anfänger
 
Registriert seit: May 2004
Beiträge: 90
MrLongbaugh befindet sich auf einem aufstrebenden Ast
danke. ich werde damit mal rumprobieren. danke für DEINE hilfe.

danke
Mit Zitat antworten
  #8  
Alt 23.08.2004, 19:04:00
MrLongbaugh MrLongbaugh ist offline
Anfänger
 
Registriert seit: May 2004
Beiträge: 90
MrLongbaugh befindet sich auf einem aufstrebenden Ast
Leider fehlt mir noch ein Teil

Bei den SubKategorien werden die Kategorien und die URLs nicht richtig ins HTML geschrieben.

Für '1' steht 'url' und für die URL steht '1'.
Habe verschiedenes probiert, komme jedoch nicht weiter.


PHP-Code:
    function CreateMenu($navi)

    {

        if(
is_array($navi)) {

            foreach(
$navi as $kat => $row) {

                echo 
'<ul><li>';
                echo 
'<a href="' $row['url'] . '">' $kat '</a></li>';



                if(
is_array($row['sub'])) {

                    foreach(
$row['sub'] as $subKat) {

                        
CreateMenu($subKat);

                    }

                }

                echo 
'</ul>';

            }

        }

    }

 
$navi = array(
    
"Produkte" => array(
        
"url"    => "produkte.php",
        
"sub" => array(
            
"1" => array( "url" => "1.php" ),
            
"2" => array( "url" => "2.php" )
                        )),
    
"Tips & Tricks" => array(
        
"url"  => "tips.php",
        
"sub" => array(
            
"1"  => array( "url" => "1.php" )
                        )));


CreateMenu($navi); 
Mit Zitat antworten
  #9  
Alt 23.08.2004, 20:49:41
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
xabbuh befindet sich auf einem aufstrebenden Ast
PHP-Code:
<?php
    
function CreateMenu($navi)
    {
        if(
is_array($navi)) {
            foreach(
$navi as $kat => $row) {
                echo 
'<ul><li>';
                echo 
'<a href="' $row['url'] . '">' $kat '</a></li>';
                
                if(
is_array($row['sub'])) {
                    
CreateMenu($row['sub']);
                }
                echo 
'</ul>';
            }
        }
    }

    
$navi = array(
                    
"Produkte" => array(
                                        
"url"    => "produkte.php",
                                        
"sub" => array(
                                                        
"1" => array(
                                                                    
"url" => "1.php"
                                                                
),
                                                        
"2" => array(
                                                                    
"url" => "2.php"
                                                                
)
                                                    )
                                    ),
                    
"Tips & Tricks" => array(
                                            
"url"  => "tips.php",
                                            
"sub" => array(
                                                            
"1"  => array(
                                                                            
"url" => "1.php"
                                                                        
)
                                                        )
                                        )
                                    );

CreateMenu($navi);
?>
In der Funktion war ein kleiner Fehler.
Mit Zitat antworten
  #10  
Alt 23.08.2004, 20:56:41
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
xabbuh befindet sich auf einem aufstrebenden Ast
Sehr schön wäre das Ganze auch mit Hilfe einer Datenbank möglich:

Tabelle navi:
id int(11) auto_increment
topmenu int(11) NOT NULL default '0'
label varchar(255)
url varchar(255)

Wenn die Spalte topmenu 0 ist, bedeutet dies, dass dieser Link die oberste Kategorie ist. Ansonsten steht in topmenu die Idee des Links, dem dieser Link untergeordnet ist.

PHP-Code:
<?php
    $sql 
"SELECT
                id,
                topmenu,
                label,
                url
            FROM
                navi
            ORDER BY
                id"
;
    
$result mysql_query($sql);
    while(
$row mysql_fetch_array($result)) {
        
$menudetails[$row['id']] = $row;
        
$topmenu[$row['topmenu']] = $row['id'];
    }

    function 
CreateMenu($id)
    {
        echo 
'<ul>';
        echo 
'<li><a href="' $menudetails[$id]['url'] . '">' $menudetails[$id]['label'] . '</a>';

        if(
is_array($topmenu[$id])) {
            foreach(
$topmenu[$id] as $subKat) {
                
CreateMenu($subKat);
            }
        }
        echo 
'</ul>';
    }

    foreach(
$topmenu[0] as $topKat) {
        
CreateMenu($topKat);
    }
?>
Ungetestet, aber das Prinzip sollte klar werden.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:50:34 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.


© 2001-2014 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt