21.04.2007, 13:27
Seiten: 1 2
22.04.2007, 11:57
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>
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
22.04.2007, 12:02
Im ersten PHP-Block machst du drei geschweifte Klammern auf, schließt aber nur zwei.
22.04.2007, 12:10
Danke, habe es verbessert die links werden auch richtig angezeigt doch die divfunktionen wollen nicht funtzen. Im Quelltext werden keine div elemente angezeigt.
22.04.2007, 12:14
Ersetze
durch:
PHP-Code:
function div1() {
if ($i = 0) {
echo "<div>";
}
}
function div2() {
if ($i = $anzahl[$a]) {
echo "</div>";
}
}
PHP-Code:
function div1() {
global $i;
if ($i == 0) {
echo "<div>";
}
}
function div2() {
global $i, $anzahl;
if ($i == $anzahl[$a]) {
echo "</div>";
}
}
22.04.2007, 12:17
Die Funktionen müssen die variablen global lesen:
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:
Edit:
So brauchst du die Funktion garnicht, und bekommst eine Ausgabe wie du sie möchtest.
Edit2:
Und so kannst du es mit der Funktion machen:
Die Ausgabe ist dann:
PHP-Code:
function div1() {
global $i;
if ($i = 0) {
echo "<div>";
}
}
function div2() {
global $i, $anzahl, $a;
if ($i = $anzahl[$a]) {
echo "</div>";
}
}
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();
}
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>
22.04.2007, 13:07
Die ersten div elemte werden richtig gesetzt, die zweiten nicht. Ich habe die divcontainer eingefärbt. klick
Ps: Was bewirkt die Funktion global?
Ps: Was bewirkt die Funktion global?
22.04.2007, 13:12
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:
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)
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();
}
22.04.2007, 13:49
Ok danke vielmals.
22.04.2007, 13:55
Bitte
Seiten: 1 2