MyBB.de Forum
echo problem - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Sonstiges (https://www.mybb.de/forum/forum-1.html)
+--- Forum: Programmierung (https://www.mybb.de/forum/forum-32.html)
+--- Thema: echo problem (/thread-5654.html)

Seiten: Seiten: 1 2


RE: echo problem - Jack Sparrow - 21.04.2007

Mich auch xD!


RE: echo problem - Jack Sparrow - 22.04.2007

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



RE: echo problem - Michael - 22.04.2007

Im ersten PHP-Block machst du drei geschweifte Klammern auf, schließt aber nur zwei.


RE: echo problem - Jack Sparrow - 22.04.2007

Danke, habe es verbessert die links werden auch richtig angezeigt doch die divfunktionen wollen nicht funtzen. Im Quelltext werden keine div elemente angezeigt.


RE: echo problem - Michael - 22.04.2007

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>";
   }




RE: echo problem - Jan - 22.04.2007

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>



RE: echo problem - Jack Sparrow - 22.04.2007

Die ersten div elemte werden richtig gesetzt, die zweiten nicht. Ich habe die divcontainer eingefärbt. klick

Ps: Was bewirkt die Funktion global?


RE: echo problem - Jan - 22.04.2007

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)


RE: echo problem - Jack Sparrow - 22.04.2007

Ok danke vielmals.


RE: echo problem - Jan - 22.04.2007

Bitte