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
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
23.08.2004, 15:23:33
|
Anfänger
|
|
Registriert seit: May 2004
Beiträge: 90
|
|
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
|
23.08.2004, 16:37:53
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
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.
|
23.08.2004, 16:58:59
|
Anfänger
|
|
Registriert seit: May 2004
Beiträge: 90
|
|
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.
|
23.08.2004, 17:10:09
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
Vielleicht so was:
PHP-Code:
<?php
$navi = array(
"Produktion" => array(
"url" => "produktion.php",
"subKat" => array(
"1" => array(
"url" => "1.php"
),
"2" => array
"2.php"
)
)
)
);
?>
|
23.08.2004, 17:23:10
|
Anfänger
|
|
Registriert seit: May 2004
Beiträge: 90
|
|
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?
|
23.08.2004, 17:33:30
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
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>';
}
}
}
?>
|
23.08.2004, 17:45:42
|
Anfänger
|
|
Registriert seit: May 2004
Beiträge: 90
|
|
danke. ich werde damit mal rumprobieren. danke für DEINE hilfe.
danke
|
23.08.2004, 19:04:00
|
Anfänger
|
|
Registriert seit: May 2004
Beiträge: 90
|
|
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);
|
23.08.2004, 20:49:41
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
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.
|
23.08.2004, 20:56:41
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
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.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 07:23:24 Uhr.
|