Beste leden van phphulp.nl,

Ik ben hier nieuw dus zal een beetje standaard beginnen.

Ik heb een probleem. Ik ben al enige tijd met php aan het werk, in probeer nu met een functie een menu dynamisch samen te stellen, het enigste probleem is dat ik helemaal geen output krijg geen error niks.

Hier onder volgen de codes van de desbetreffende bestanden:

module_config.php:

<?
/* Module List */
$menuinput = array( 'News' => $path_news, 'Warning' => $path_warning);

/* Proccessing AREA */

include('functions.php');
menu($menuinput);
?>

functions.php:

<? function Menu()
{
$rowsmenu = array();
foreach ($menuinput as $key => $value)
{
$rowsmenu[] = "<tr><td><font style=font-family: Verdana, Arial, Helvetica, sans-serif><img src=images/arrow.jpg> <a href=$value>$key</a></font></td></tr>";
}
RETURN $rowsmenu;
}
?>

panel.php:

<?
include('module_config.php');
include ('layout_top.php');
?>
<center>
<table>
<?
foreach($rowsmenu as $value){
print($value);
}
?>
</table>
</center>

Als je precies wilt zien wat het probleem is: http://www.gold-strike.com/~dutchkillers/Admin%20Panel/panel.php in het rechtervak zou het menu moeten worden geplaatst - en jah hij staat in het goede vlak in het design ;)

Weten jullie de oplossing?

Alvast hartelijk bedankt :)
zet bovenaan je script eens:
<? error_reporting(E_ALL); ?>
Kijken of hij dan wel een fout geeft
Willem-Jan schreef op 13.04.2005 14:43
zet bovenaan je script eens:
<? error_reporting(E_ALL); ?>
Kijken of hij dan wel een fout geeft


Ok heb ik gedaan, zaten 2 foutjes in die heb ik eruit gehaald.... die fouten staan niet in de scriptjes die hier boven genoemd staan.

Ik krijg alleen nog steeds geen output
function Menu(), maak daar eens van
function Menu($menuinput)

en RETURN $rowsmenu; geeft de waarde terug, zodat hij mooi in een string past. Je geeft dus een array terug zie ik die je verderop weer print.

dus moet het weorden:
$rowmenu = Menu($menuinput);
foreach($rowsmenu as $value){
print($value);
}

Jelmer schreef op 13.04.2005 15:06
function Menu(), maak daar eens van
function Menu($menuinput)

en RETURN $rowsmenu; geeft de waarde terug, zodat hij mooi in een string past. Je geeft dus een array terug zie ik die je verderop weer print.

dus moet het weorden:
$rowmenu = Menu($menuinput);
foreach($rowsmenu as $value){
print($value);
}

ok alle 2 gedaan,
helaas nog steeds geen enkele output... :(... zit wel goed fout zekers?... ik twijfel zelf over het aanroepen van de functie maar ik kan nergens een goed voorbeeld vinden :S
$menuinput = array( 'News' => $path_news, 'Warning' => $path_warning);

Bestaan $path_news en $path_warning?

menu($menuinput);
function Menu()

Zoals al gemeld maak er function Menu($menuinput) van en ik zou niet bij de aanroep kleine letters gebruiken en bij het definieren beginnen met een hoofdletter.

blabla...<a href=$value>$key</a></font></td></tr>";

Zou ik blabla...<a href=".$value>$key."</a></font></td></tr>"; van maken en is $value>$key wel de juiste syntax?
SanThe schreef op 13.04.2005 17:49
$menuinput = array( 'News' => $path_news, 'Warning' => $path_warning);

Bestaan $path_news en $path_warning?

menu($menuinput);
function Menu()

Zoals al gemeld maak er function Menu($menuinput) van en ik zou niet bij de aanroep kleine letters gebruiken en bij het definieren beginnen met een hoofdletter.

blabla...<a href=$value>$key</a></font></td></tr>";

Zou ik blabla...<a href=".$value>$key."</a></font></td></tr>"; van maken en is $value>$key wel de juiste syntax?


Bestaan $path_news en $path_warning? die bestaan jah :)

en nee ik ben er niet zeker van dat dit de juiste syntax is maar zoals al vermeld in me eerste berichtje kon ik nergens een duidelijk voorbeeld vinden....

ik heb ook jouw suggesties toegepast zonder enig resultaat :(
moet return in hoofdletters?, probeer het eens in kleinen.
<?php
function Menu($menuinput)
{
if(!empty($menuinput)){
$rowsmenu = array();
foreach ($menuinput as $key => $value)
{
$rowsmenu[] = "<tr><td><font style=font-family: Verdana, Arial, Helvetica, sans-serif><img src=images/arrow.jpg> <a href=".$value.">".$key."</a></font></td></tr>";
}
}
else{
$rowsmenu = array("error" => "menuarray is leeg");
}
return $rowsmenu;
}
?>
Dit zou moeten werken!

<?
function Menu($menuinput)
{
$rowsmenu = array();
foreach ($menuinput as $key => $value)
{
$rowsmenu[] = "<tr><td><font style=font-family: Verdana, Arial, Helvetica, sans-serif><img src=images/arrow.jpg> <a href=$value>$key</a></font></td></tr>";
}
RETURN $rowsmenu;
}
$menuinput = array( 'News' => $path_news, 'Warning' => $path_warning);
?>
<center>
<table>
<?
$menu_items = menu($menuinput);

foreach($menu_items as $value)
{
print($value);
}
?>




In deze code:
<?
foreach($rowsmenu as $value){
print($value);
}
?>

is $rowsmenu leeg, vandaar dat je geen output krijgt...
Return mag allebei, Ik denk persoonlijk dat hij die array niet goed extract, ik had eerst gewoon een array met 2 waardes niks speciaals toen had ik er dus => erbij gedaan en nu werkt ie niet meer, daar moet het dus denk ik verkeerd gaan.
vervang

menu($menuinput);
door

$rowsmenu = menu($menuinput);

klein voorbeeldje waarom
$test =hallo;
function test() {
$test =doei;
return $test;
}
echo $test;
echo test();
//output
//hallodoei

Reageren