WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 02.10.2006, 19:07   #11
jak
Inventar
 
Registriert seit: 13.06.2001
Beiträge: 1.830


Standard

Bei mir funktioniert es so:
Code:
foreach($menue as $key => $val){
      if ($key == $_GET['geladene_seite']) {
        //aktuelle Seite, kein Link
        echo $val['title']."
\n";
      } else {
        //Link
        echo ''.$val['title'].''."
\n";
        //andere Methode:
        echo ''.$val['title'].''."
\n";
      }
    }

//irgendwann nachher das include:
include($menue[$_GET['geladene_seite']]['file']);
jak
____________________________________
Join the DNRC | Godwin\'s Law (thx@stona)
Documentation is like sex: If it\'s good, it\'s very, very good. If it\'s bad, it\'s better than nothing.
\"In theory, theory and practice are the same. In practice, they are not\" (Lawrence Berra)
jak ist offline   Mit Zitat antworten
Alt 03.10.2006, 11:57   #12
wallhall
Senior Member
 
Registriert seit: 13.02.2003
Beiträge: 149


Standard

hallo @jak,

verstehe nicht warum es bei dir, nicht aber bei mir funktionert.

die ersten fehler die gekommen sind:
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE,
expecting T_STRING or T_VARIABLE or T_NUM_STRING

na gut, ein wenig gegoogelt und dann die syntax bei mir verändert:
foreach($menue as $key => $val){
if ($key == $_GET['geladene_seite']) {
echo "<td align=\"center\" bgcolor=\"#00ff00\">'".$val['title']."'</td>";
} else {
echo "<td align=\"center\" bgcolor=\"#c0c0c0\"><a href=\"'".$val['path']."'\">'".$val['title']."'</a></td>";
}
}

das hätte dann auch soweit geklappt, nur kommt nun diese:
Notice: Undefined index: geladene_seite in C:\Programme\xampp\htdocs\index.php on line 62

die zeile 62: if ($key == $_GET['geladene_seite']) {

wenn ich trotzdem einen link anklicke wird die seite nicht gefunden
-> ich nehme an es liegt an den anführungszeichen im array 'path'


also keine ahnung was ich machen kann, damit es so läuft wie ich es mir vorstelle.

hilfst du mir noch einmal
____________________________________
lg wallhall
wallhall ist offline   Mit Zitat antworten
Alt 03.10.2006, 13:00   #13
jak
Inventar
 
Registriert seit: 13.06.2001
Beiträge: 1.830


Standard

Nur zur Erklärung (Vielleicht weißt du das eh schon):
In PHP kann man Strings auf zwei Arten angeben: In doppelten (") oder einfachen(') Hochkommas. Der Unterschied besteht darin, daß bei doppelten Hochkommas Variablen ausgewertet werden:
$myvar = 'Hallo';
echo 'Ich sage: $myvar';
echo "Ich sage: $myvar";
Ausgabe:
Ich sage: $myvar
Ich sage: Hallo

Die Notice bekommst du, wenn du zum ersten mal die Seite aufrufst (daher kein ?geladene_seite=...). Wenn dich das stört kannst du es durch:
if (isset($_GET['geladene_seite']) && ($key == $_GET['geladene_seite'])) {
ersetzen.

Zu deinem eigentlichen Problem kann ich dir leider nichts sagen. Eventuell Hochkommas im Text die nicht maskiert sind?

Wenn du nichts findest kannst du ja nochmal deinen Code posten.

jak

jak
____________________________________
Join the DNRC | Godwin\'s Law (thx@stona)
Documentation is like sex: If it\'s good, it\'s very, very good. If it\'s bad, it\'s better than nothing.
\"In theory, theory and practice are the same. In practice, they are not\" (Lawrence Berra)
jak ist offline   Mit Zitat antworten
Alt 03.10.2006, 14:18   #14
wallhall
Senior Member
 
Registriert seit: 13.02.2003
Beiträge: 149


Standard

das mit dem einfachen oder doppelten hochkomma wusste ich nicht, muss ich übersehen haben. aber danke für die info!
ich werde mir das ganze nochmal in aller ruhe angucken und vielleicht finde ich den fehler.

danke und
____________________________________
lg wallhall
wallhall ist offline   Mit Zitat antworten
Alt 03.10.2006, 16:17   #15
wallhall
Senior Member
 
Registriert seit: 13.02.2003
Beiträge: 149


Standard

[code]
<?php
$menue = array(
'neues' => array(
'title' => 'Neuigkeiten',
'file' => 'neues.php',
'path' => 'index.php?geladene_seite=neues'
),
'altes' => array(
'title' => 'Altigkeiten',
'file' => 'altes.html',
'path' => 'index.php?geladene_seite=altes'
),
'ausflug_weiten' => array(
'title' => 'Ausflug nach Weiten',
'file' => 'weiten/weiten.php',
'path' => 'index.php?geladene_seite=ausflug_weiten'
),
'fam_' => array(
'title' => 'Familie ',
'file' => 'fam_.html',
'path' => 'index.php?geladene_seite=fam_'
),
);

echo "<table width=\"100%\">\n";
echo "<tr>\n";
foreach($menue as $key => $val){
if ($key == $_GET['geladene_seite']) {
echo "<td align=\"center\" bgcolor=\"#00ff00\">'".$val['title']."'</td>";
} else {
echo "<td align=\"center\" bgcolor=\"#c0c0c0\"><a href=\"'".$val['path']."'\">'".$val['title']."'</a></td>";
}
}
echo " </tr>\n";
echo " </table>\n";
echo "</br>\n";
if(isset($_GET['geladene_seite']) AND ($key == $_GET['geladene_seite'])) {
include($menue[$_GET['geladene_seite']]['file']);
} else {
include $menue['fam_']['file'];
}

?>

das einzige was funktioniert ist die letze include nach dem else, in der schleife werden komischerweise die links alle mit hockkomma dargestellt und beim anklicken wird die seite nicht geladen -> wenn ich die hochkommas aus der adressleiste lösche aber schon

ist das ein problem des arrays oder vom auslesen des arrays?

____________________________________
lg wallhall
wallhall ist offline   Mit Zitat antworten
Alt 03.10.2006, 16:44   #16
T.dot
Master
 
Registriert seit: 13.08.2003
Beiträge: 624


Standard

Das er Anführungszeichen ausgibt ist klar, nachdem du sie ja auch im Sourcecode stehen hast

siehe hier:
PHP-Code:
foreach($menue as $key => $val)
{
  if (
$key == $_GET['geladene_seite']) 
  {
    echo 
"<td align=\"center\" bgcolor=\"#00ff00\">'".
      
$val['title']."'</td>";
  } 
  else 
  {
    echo 
"<td align=\"center\" bgcolor=\"#c0c0c0\"><a href=\"'"
      
$val['path']."'\">'".$val['title']."'</a></td>";
  }

die Zeile:
PHP-Code:
echo "<td align=\"center\" bgcolor=\"#c0c0c0\"><a href=\"'".$val['path']."'\">'".
$val['title']."'</a></td>"
müsste eigentlich so aussehen:
PHP-Code:
echo "<td align=\"center\" bgcolor=\"#c0c0c0\"><a href=\"" $val['path'] . "\">" 
$val['title'] . "</a></td>"
Wenn du uns sagst, wozu du die einfachen Anführunsgzeichen gemacht hast, kann man vl. klären wieso man sie nicht braucht

mfg Thomas

ps: Für alle, die sich intensiver mit PHP auseinandersetzen und größere Seiten planen, würd ich eine Template Enginge wie Smarty empfehlen.
T.dot ist offline   Mit Zitat antworten
Alt 03.10.2006, 17:01   #17
wallhall
Senior Member
 
Registriert seit: 13.02.2003
Beiträge: 149


Standard

@t.dot, wenn ich erklären könnte warum ich diese einfachen hochkommas habe, hätte ich sie vermutlich gar nicht

also hab ich mir selbst ein riesenei gelegt, auch net schlecht

gut, ich werde es einfach einmal rauslöschen und testen ....
____________________________________
lg wallhall
wallhall ist offline   Mit Zitat antworten
Alt 03.10.2006, 20:54   #18
wallhall
Senior Member
 
Registriert seit: 13.02.2003
Beiträge: 149


Standard

*seufz*
also die links werden jetzt korrekt dargestellt - das passt zum glück

PHP-Code:
foreach($menue as $key => $val) {
    if (
$key == $_GET['geladene_seite']) {
    echo 
"<td align=\"center\" bgcolor=\"#00ff00\">" $val['title'] . "</td>";
    } else {
        echo 
"<td align=\"center\" bgcolor=\"#c0c0c0\"><a href=\"" $val['path'] . "\">" $val['title'] . "</a></td>";
    }

aber ich kann keine seiten laden. die erste seite im array und die letzte seite im array wird geladen, die restlichen nicht (bleibt auf dem stand der ersten seite)

PHP-Code:
  if(isset($_GET['geladene_seite']) && ($key == $_GET['geladene_seite'])) {
    include(
$menue[$_GET['geladene_seite']]['file']);
} else {
    include (
$menue['neues']['file']);

und ich gib es zu, ich bin noch nicht so der profi
____________________________________
lg wallhall
wallhall ist offline   Mit Zitat antworten
Alt 04.10.2006, 10:13   #19
wallhall
Senior Member
 
Registriert seit: 13.02.2003
Beiträge: 149


Standard

PHP-Code:
if(isset($_GET['geladene_seite']) && ($key == $_GET['geladene_seite'])) { 
nach dem and, der vergleich ($key == $_GET['geladene_seite'])) war die ursache.
aber wie bekomme ich nun die notice-fm weg?

aber sonst funktioniert alles, daher ein danke an @jak und @t.dot
____________________________________
lg wallhall
wallhall ist offline   Mit Zitat antworten
Antwort


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.

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

Gehe zu


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


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag