Beiträge: 105
Themen: 13
Registriert seit: 19.12.2006
Beiträge: 105
Themen: 13
Registriert seit: 19.12.2006
22.04.2007, 11:57
(Dieser Beitrag wurde zuletzt bearbeitet: 22.04.2007, 12:09 von Jack Sparrow.)
PHP-Code:
<?
$menu = array(array("Startseite", "Guestbook"),
array("about me","meng Klass","Friends"),
array("Error","lol")
);
$anzahl = array(count($menu[0]),count($menu[1]),count($menu[2])
);
function div1() {
if ($i = 0) {
echo "<div>";
}
}
function div2() {
if ($i = $anzahl[$a]) {
echo "</div>";
}
}
?>
<html>
<body>
<?
for ($a=0; !empty($menu[$a]); $a++)
{
for ($i = 0; $i < $anzahl[$a]; $i++)
{
div1();
echo "<a class=\"menu\" href=\"startseit.php?page=".$menu[$a][$i]."\">".$menu[$a][$i]."</a><br>";
echo "\n";
div2();
}
}
?>
</body>
</html>
Edit: Habe den Php-code aktualisiert.
Kann mir jemand sagen was ich falsch mache?
Es erscheint beim Aufruf folgende Fehlermeldung
Code:
Parse error: syntax error, unexpected $end in /usr/export/www/vhosts/funnetwork/hosting/jeffw/homepage/sfd.php on line 32
Beiträge: 18.383
Themen: 257
Registriert seit: 09.02.2005
Im ersten PHP-Block machst du drei geschweifte Klammern auf, schließt aber nur zwei.
Gruß,
Michael
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Beiträge: 105
Themen: 13
Registriert seit: 19.12.2006
Danke, habe es verbessert die links werden auch richtig angezeigt doch die divfunktionen wollen nicht funtzen. Im Quelltext werden keine div elemente angezeigt.
Beiträge: 18.383
Themen: 257
Registriert seit: 09.02.2005
Ersetze
PHP-Code:
function div1() {
if ($i = 0) {
echo "<div>";
}
}
function div2() {
if ($i = $anzahl[$a]) {
echo "</div>";
}
}
durch:
PHP-Code:
function div1() {
global $i;
if ($i == 0) {
echo "<div>";
}
}
function div2() {
global $i, $anzahl;
if ($i == $anzahl[$a]) {
echo "</div>";
}
}
Gruß,
Michael
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Beiträge: 1.450
Themen: 155
Registriert seit: 18.03.2006
22.04.2007, 12:17
(Dieser Beitrag wurde zuletzt bearbeitet: 22.04.2007, 12:39 von Jan.)
Die Funktionen müssen die variablen global lesen:
PHP-Code:
function div1() {
global $i;
if ($i = 0) {
echo "<div>";
}
}
function div2() {
global $i, $anzahl, $a;
if ($i = $anzahl[$a]) {
echo "</div>";
}
}
Da war Michael schneller. Aber bei ihm fehlt $a als globale Variable.
Aber warum willst du unbedingt dein "div" über eine Funktion ausgeben lassen?
Ich habe zudem nur folgende Ausgabe, die glaube ich nicht ist was du willst:
Code:
13:19 dhcppc3:~/phpprojekt > php index.php
<a class="menu" href="startseit.php?page=Startseite">Startseite</a><br>
</div><a class="menu" href="startseit.php?page=about me">about me</a><br>
</div><a class="menu" href="startseit.php?page=Error">Error</a><br>
Edit:
So brauchst du die Funktion garnicht, und bekommst eine Ausgabe wie du sie möchtest.
PHP-Code:
for ($a=0; !empty($menu[$a]); $a++)
{
echo "\n<div>\n";
for ($i = 0; $i < $anzahl[$a]; $i++)
{
echo "<a class=\"menu\" href=\"startseit.php?page=".$menu[$a][$i]."\">".$menu[$a][$i]."</a><br>";
echo "\n";
}
echo "\n</div>\n";
}
Edit2:
Und so kannst du es mit der Funktion machen:
PHP-Code:
function div1() {
echo "<div>\n";
}
function div2() {
echo "</div>\n";
}
for ($a=0; !empty($menu[$a]); $a++)
{
div1();
for ($i = 0; $i < $anzahl[$a]; $i++)
{
echo "<a class=\"menu\" href=\"startseit.php?page=".$menu[$a][$i]."\">".$menu[$a][$i]."</a><br>";
echo "\n";
}
div2();
}
Die Ausgabe ist dann:
Code:
13:37 dhcppc3:~/phpprojekt > php index.php
<div>
<a class="menu" href="startseit.php?page=Startseite">Startseite</a><br>
<a class="menu" href="startseit.php?page=Guestbook">Guestbook</a><br>
</div>
<div>
<a class="menu" href="startseit.php?page=about me">about me</a><br>
<a class="menu" href="startseit.php?page=meng Klass">meng Klass</a><br>
<a class="menu" href="startseit.php?page=Friends">Friends</a><br>
</div>
<div>
<a class="menu" href="startseit.php?page=Error">Error</a><br>
<a class="menu" href="startseit.php?page=lol">lol</a><br>
</div>
Beiträge: 105
Themen: 13
Registriert seit: 19.12.2006
Die ersten div elemte werden richtig gesetzt, die zweiten nicht. Ich habe die divcontainer eingefärbt.
klick
Ps: Was bewirkt die Funktion global?
Beiträge: 1.450
Themen: 155
Registriert seit: 18.03.2006
22.04.2007, 13:12
(Dieser Beitrag wurde zuletzt bearbeitet: 22.04.2007, 13:13 von Jan.)
Global bewirkt, das er die variable in einem Globalen zusammenhang sucht. Variablen sind normalerweise nur lokal verfügbar. das heißt, eine Funktion kann keine variablen lesen, die du irgendwo definiert hast, es sei denn in der funktion selber. Mit global kann er auch die anderen lesen.
Siehe auch hier:
http://de.php.net/global
Benutzt doch diesen Code:
PHP-Code:
function div1() {
echo "<div>\n";
}
function div2() {
echo "</div>\n";
}
for ($a=0; !empty($menu[$a]); $a++)
{
div1();
for ($i = 0; $i < $anzahl[$a]; $i++)
{
echo "<a class=\"menu\" href=\"startseit.php?page=".$menu[$a][$i]."\">".$menu[$a][$i]."</a><br>";
echo "\n";
}
div2();
}
damit sieht es so aus wie du möchtest, wie du in meinem Beitrag davor sehen kannst(eventuell Seite neuladen, der Beitrag wurde mehrfach editiert)
Beiträge: 105
Themen: 13
Registriert seit: 19.12.2006
Beiträge: 1.450
Themen: 155
Registriert seit: 18.03.2006