getreidemuehlen
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 25.06.2002, 13:01   #1
TP-Veteran
 
Benutzerbild von steff
 
Registriert seit: Mar 2001
Ort: wein4tel (ö)
steff ist auf einem guten Weg

[php] problem mit function


hi, leute,

möchte eine function zur css-formatierung für eine navigation schreiben, doch leider hindern mich die bretter vorm kopf daran...

ich hab mir das ganze so vorgestellt:

PHP-Code:
function NAV_CSS($angabe) {

    if(
$sub == $angabe) {
        
$style nav_sub2_active;
    }
    else {
        
$style nav_sub2;
    }
return 
$style;

aufruf erfolgt so:

PHP-Code:
$css NAV_CSS(pizzerias);
print(
"<a href='index.php?sub=pizzerias' class='$css'>Pizzerias</a>"); 
leider funzts so nicht. wie kanns laufen?

thx
steff ist offline   Mit Zitat antworten


Alt 25.06.2002, 13:55   #2
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
zwei ansätze:

$sub: wo ist das definiert?
vielleicht mit global $sub in der funktion sichtbar machen

NAV_CSS(pizzerias): NAV_CSS('pizzerias') - wobei ich mir net sicher bin, obs nutzt.


schöne grüsse nach wien - ich schick euch schönes wetter runter

lf

gerad gesehen ?sub=pizzerieas

probiers mit $_GET[sub] in deiner funktion - vielleicht hast du ein register_globals=off problem
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 25.06.2002, 14:26   #3
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
Eigentlich sind's nur zwei kleine Fehler:

Wie Longfang schon bemerkt hat, ist $sub in der Funktion undefiniert, ein
PHP-Code:
global $sub
sollte Abhilfe schaffen.

Ansonsten musst du natürlich sämtliche Strings in Anführungszeichen setzen, sowohl in der Funktion ($style = 'nav_sub2_active' als auch bei ihrem Aufruf.

Seh ich richtig, dass Du mit dieser Funktion entscheiden willst, ob der Link zu einer Subkategorie, den jede Seite enthält, auf diejenige zeigt, die gerade geladen ist, um ihn dann in einem anderen style darzustellen?

Ich find allerdings, dass die Lösung ziemlich umständlich is.
Guck mal, ob du folgendes gebrauchen kannst. Die Lösung wäre (falls sie denn deinem Problem entspricht) deutlich eleganter:

PHP-Code:

// du erzeugst ein Array mit einem kurzen und einfachen Wort als Schlüssel und Subkategorie-name für den Link sowie dem ausführlichen Linktitel als Wert:

$array_subs = array('start' => 'Startseite''referenzen' => 'Unsere Referenzen''kontakt' => 'Kontakt');

// Du gehst das Array durch und vergleichst seine Schlüssel mit dem Wert der Variablen $sub, die zuvor per Link an das Script übergeben wurde - wenn die Werte übereinstimmen, wählst du die entsprechende css-class, ansonsten die 'normale':

foreach($array_subs as $subkey => $subtitle)
{
if(
$sub == $subkey)
{
$css_class 'active';
}
else
{
$css_class 'normal';
}

echo 
"<a href=\"index.php?sub=$subkey\" class=\"$css_class\">$subtitle</a>";


Geändert von seb (25.06.2002 um 14:31 Uhr).
seb ist offline   Mit Zitat antworten
Alt 26.06.2002, 08:42   #4
TP-Veteran
 
Benutzerbild von steff
 
Registriert seit: Mar 2001
Ort: wein4tel (ö)
steff ist auf einem guten Weg
hi, seb,

danke, super lösung. jetzt hab ich array auch ein wenig durchschaut

genau das hab ich gesucht.

danke nochmals
steff ist offline   Mit Zitat antworten
Alt 26.06.2002, 09:25   #5
TP-Veteran
 
Benutzerbild von steff
 
Registriert seit: Mar 2001
Ort: wein4tel (ö)
steff ist auf einem guten Weg
noch ein kleines prob:

ich hab beim obigen array 2 werte. wie kann ich drei werte ausgeben lassen? so funzts nicht (ist auch ein milchmännchen-denken, nehm ich an... )

PHP-Code:

$array_subs 
= array('start' => 'Startseite' => '1''referenzen' => 'Unsere Referenzen' => '2''kontakt' => 'Kontakt' => '3');


foreach(
$array_subs as $subkey => $subtitle => $subnumber)
{
if(
$sub == $subkey)
{
$css_class 'active';
}
else
{
$css_class 'normal';
}

echo 
"<a href=\"index.php?sub=$subkey&number=$subnumber\" class=\"$css_class\">$subtitle</a>";

steff ist offline   Mit Zitat antworten
Alt 26.06.2002, 12:46   #6
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
Hmm...nee, ein Array-Element kann immer nur zwei Werte speichern, eben seinen Namen und seinen Inhalt, wie eine einzelne Variable auch. Bei einfachen indizierten Arrays ist der Elementname einfach eine Nummer, z.b. $array[5], bei assoziativen Arrays ein String, z.b. $array['startwert'] (übrigens kann man auch problemlos beides in einem Array kombinieren).

Deinen zusätzlichen Zahlenwert kriegst du aber trotzdem ganz einfach, solange er durchgehend (d.h. ohne Lücken und Sprünge) aufgezählt werden soll:

PHP-Code:
// subnumber vor schleife auf 1 setzen...
$subnumber 1
foreach 
blabla...
{
if ....
echo 
"<a href=\"index.php?sub=$subkey&number=$subnumber\" class=\"$css_class\">$subtitle</a>";

// ...und einfach bei jedem Schleifendurchlauf um 1 erhöhen:

$subnumber++; 

seb ist offline   Mit Zitat antworten
Alt 26.06.2002, 15:52   #7
TP-Veteran
 
Benutzerbild von steff
 
Registriert seit: Mar 2001
Ort: wein4tel (ö)
steff ist auf einem guten Weg
hätte ursprünglich einen zahlencode vorgegeben, werde deine anwendung aber überdenken. lässt sich wahrscheinlich auch so lösen.

danke, seb.
steff ist offline   Mit Zitat antworten
Alt 27.06.2002, 13:00   #8
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
für was brauchst du die numerierung überhaupt?
seb ist offline   Mit Zitat antworten
Alt 01.07.2002, 09:42   #9
TP-Veteran
 
Benutzerbild von steff
 
Registriert seit: Mar 2001
Ort: wein4tel (ö)
steff ist auf einem guten Weg
je nach zahlencode werden diverse elemente inkludiert. und ich hatte mir schon eine einteilung überlegt.

tja, wer nicht flexibel ist, bleibt über - und so werd ich den zahlencode eben anders gestalten - "schleifenfähig"

lg
steff
steff ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
[php] problem mit function [php] problem mit function
« Termine aus Datenbank | cfm Dateien »

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

Erweiterte Suche
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:44 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67