Navigationsleiste in PHP
Einklappen
X
-
h.a.n.d.
Schmalle
http://impressed.by
http://blog.schmalenberger.it
Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
... nur ohne :-)
-
Ich habe das jetzt mit einer foreach Schleife gelöst,
Danke für eure Hilfe!
Jetzt will ich aber noch das ich die verschiedenen Teile der txt. Datei in verschieden (vielleicht) Variablen aufteilen kann.
Da ich die Werte in einer nebenstehenden Tabelle übergeben will.
So in etwa:
Name: Janet Schmidt
Straße: Irgendeine 11
PLZ Ort: 42897 Remscheid
und das für die einzelnen Personen.
Könnt ihr mir da nocheinmal helfen?
Mein Code:
PHP-Code:<?
$data = file("daten.txt");
$result = array();
reset ($result);
foreach($data as $line) {
$zeilen = explode(",", $line);
if(trim($zeilen[0]) == "de") $result[] = $zeilen;
}
foreach($result as $item) {
if(is_array($item)) echo implode(", ", $item) . "<br>";
else echo $item . "<br>";
}
?>
Kommentar
-
Ich sehe irgendwie das Problem nicht. Statt die Werte zu imploden und auszugeben, kannst du sie in der zweiten foreach doch auch einfach in einer HTML-Tabelle ausgeben. Auf 'Variablen aufgeteilt' sind die Zeilen schon, wenn is_array() true ist. (Sonst gäbe es ja auch nix zu imploden.)
Hier noch ein zweiter Ansatz, ungetestet, nicht für Windows, aber dafür schön kurz:
PHP-Code:// Array der Zeilen, die mit de beginnen
$de = explode("\n", shell_exec("grep '^de,' daten.txt"));
// Zeilen aufsplitten
foreach ($de as $k => $line) {
list($de[$k]['tld'],
$de[$k]['name'],
$de[$k]['street'],
$de[$k]['zip'],
$de[$k]['town']) = explode(', ', $line);
}
// Testausgabe
echo '<pre>'; print_r($de); echo '</pre>';
Kommentar
-
Komm nicht weiter
Morgen zusammen,
bräuchte nochmals euer Hilfe.
Ausgangssituation:
Erstellen einer Navigationleiste, die bei klick auf ein Feld aufklappt.
In etwa so:
Deutschland
=>Janet Schmidt
=>Lutz Ahnungslos
England
Frankreich
Die Daten kommen aus zwei txt.Files. Eine für die Länder
1.
Deutschland, de
Frankreich, fr
England, uk
und eine mit den einzelnen Daten.
2.
de, Janet Schmidt, Straße, PLZ, Ort, Telefon, eMail
de, ....
fr, .....
uk,....
de,....
Klickt man auf ein Name soll in einer nebenstehenden Tabelle die persönlichen Daten erscheinen.
Mein Code:
PHP-Code:<?
$land= "laender_kz.txt";
$arr = file($land);
sort($arr, SORT_STRING);
foreach ($arr as $line){
$teil= explode(",",$line);
echo <<<EOF
<a href='index_janet.php?=$teil[1]' target=''>$teil[0]</a>
<br>
EOF;
if ($teil[1]=="de"){
$daten= "daten.txt";
$d_arr= file($daten);
sort($d_arr, SORT_STRING);
foreach($d_arr as $satz) {
for ($d=0; $d<count($satz); $d++){
$zeile = explode(",", $satz[$d]);
echo <<<EOF
<a href='index_janet.php?=$teil[1]' target=''>$teil[0]</a>
<br>
<a href='' target=''> $zeile[1]</a>
<br>
EOF;
}
}
}
}
echo "<br><br>";
echo "<tr><td>Name:</td></tr>";
echo "<tr><td><img src=\"$zeile[2]\" alt=\"\"></td></tr>";
echo "<tr><td>$zeile[1]</td></tr>";
echo "<tr><td>Funktion:</td></tr>";
echo "<tr><td>$zeile[3]</td></tr>";
echo "<tr><td> </td></tr>";
echo "<tr><td> </td></tr>";
echo "<tr><td>Tel: $zeile[4]</td></tr>";
echo "<tr><td>eMail: $zeile[5]</td></tr>";
echo "<tr><td>Fax: $zeile[6]</td></tr>";
echo "<tr><td>Anschrift:</td></tr>";
echo "<tr><td>$zeile[7]</td></tr>";
echo "<tr><td>$zeile[8] $zeile[9]</td></tr>";
echo "</th>";
?>
Gruß
Janet
Kommentar
-
Kommt drauf an, ob du uns sagen kannst, wieviel Threads zu dem Thema du noch aufmachen willst (5 Stück hab ich eben zusammengefasst...) und welche Variablen du dir testweise hast ausgeben lassen um zu verifizieren, ob das drinsteht, was du vermutestZuletzt geändert von mrhappiness; 12.08.2005, 08:28.Ich denke, also bin ich. - Einige sind trotzdem...
Kommentar
-
ich hatte nicht vor euch damit zu nerven, aber ich möchte es halt hinbekommen.
was ich ausgegeben habe möchte, gibt er mir aus, aber nicht so wie ich es will.
also ich bekomme die navileiste, kann sie aber nicht anklicken, so dass sie sich aufklappt und ich mit einem weiteren klick die nebenstehende Tabelle füllen kann.
hab da jetzt schon einiges versucht und auch viel hilfe bekommen. Aber wenn es langsam zu viel wird, kann man nichts machen.
Trotzdem danke an alle die mir geholfen haben.
Kommentar
-
ich weiß jetzt nicht genau was du meinst.
die variablen die ich mir habe ausgeben lassen, habe ich den beiden text dateien entnommen.
zum einen für die Navileiste, die auch fast funktioniert, sie klappt sich nur nicht auf und man kann so auf keinen namen klicken
und zum anderen für die nebenstehende Tabelle, die daten der einzelnen Personen. was nicht so ganz funktioniert (was ja auch klar ist, da die navileiste nicht ganz klappt).
wenn ich es mir im browser anzeigen lassen erscheint in der status leiste, wenn ich zum beispiel auf deutschland klicke
"http://localhost/index.php?de=uk" er erkennt das es deutschland ist aber nicht das es die daten aus der txt.daten von de sein sollen, da nimmt er immer uk.
aus diesem Grund steht die Tabelle noch leer.
kannst du damit was anfangen?
Kommentar
-
Wenn du willst, das etwas passiert, wenn du auf einen Link klickst, dann musst du im Skript die Parameter auswerten, die du im Link übergibst.
Parameter, die per Link übergeben werden, kannst du mit $_GET['parametername'] ansprechen/auswerten, sowas sehe ich bei dir nicht.
Ich sehe sowieso nicht, wo du irgendwas abhängig von irgendwelchen Parametern machst.
Schreibe doch mal hinter jede Zeile deines Codes einen Kommentar, der beschreibt, was diese Zeile macht und poste das.
Ich glaube nämlich, das was du programmiert hast und das was du zu programmieren vorhattest ist nicht deckungsgleich...Ich denke, also bin ich. - Einige sind trotzdem...
Kommentar
-
Hier mein auskommentierter Code:
PHP-Code:<?
$land= "laender_kz.txt";
$arr = file($land); //komplette Datei in ein array schreiben
sort($arr, SORT_STRING); //datei sortieren
$daten= "daten.txt"; //hier das gleiche nur mit der Datei für die Daten
$d_arr= file($daten); //und ohne sortieren, da das erste zeichen das Laenderkürzel ist
foreach($d_arr as $satz) { // alle zeilen drchlaufen
$zeile = explode(",", $satz); // zeile aufbrechen, nach kommas
}
foreach ($arr as $line){ //alle zeilen durchlaufen
$teil= explode(",",$line); //zeile nach kommas aufbrechen
echo <<<EOF
<a href='index_janet_neu.php?$teil[1]=$zeile[0]' target=''>$teil[0]</a>
<br>
EOF;
}
//schreiben der der Navileiste und mit klick neu laden, sowie den Parameter $teil[1]="landkz" mit
//mit $zeile[0]="auch landkz" vergleichen.
if ($teil[1]==$zeile[0]){ //wenn die Parameter gleich sind mache das
echo "<a href='index_janet_neu.php?$teil[1]=$zeile[0]' target=''>".$teil[0]."</a>";
echo "<a href=''index_janet_neu.php' target=''> ".$zeile[1]."</a>";
echo "<br>";
}
?>
</td></tr></table>
<th> </th>
<th><table border="0">
<tr><th>HR Personal List</th></tr>
<?
//das ist die nebenstehende Tabelle die ich mit den Parametern fuellen moechte
echo "<tr><td>Name:</td></tr>";
echo "<tr><td><img src=\"$zeile[2]\" alt=\"\"></td></tr>";
echo "<tr><td>$zeile[1]</td></tr>";
echo "<tr><td>Funktion:</td></tr>";
echo "<tr><td>$zeile[3]</td></tr>";
echo "<tr><td> </td></tr>";
echo "<tr><td> </td></tr>";
echo "<tr><td>Tel: $zeile[4]</td></tr>";
echo "<tr><td>eMail: $zeile[5]</td></tr>";
echo "<tr><td>Fax: $zeile[6]</td></tr>";
echo "<tr><td>Anschrift:</td></tr>";
echo "<tr><td>$zeile[7]</td></tr>";
echo "<tr><td>$zeile[8] $zeile[9]</td></tr>";
echo "</th>";
?>
Kommentar
Kommentar