Moderator |
|
Het probleem zit hem niet in de toekenningen met het =-teken, het probleem zit hem in de ontbrekende haken bij de for-lus op regel 20.
Als je geen haken om een lus heen zet, zit alleen het volgende statement (regel 21) in de "loop".
Regel 22 wordt pas uitgevoerd na beëindiging van de for-lus.
In zoverre wordt $CreateError elke keer overschreven, maar waarom zou je alles in een string willen frotten als je het al netjes in een array hebt staan?
EDIT: Je kunt trouwens dat error-array aan de ShowError-functie mee kunnen geven als parameter, dat is wat netter dan werken met global. Je zou dus ook het bouwen van zo'n HTML-lijst kunnen verplaatsen naar binnen die functie, wat op zich wel logisch is...
EDIT2:
zo dus - controle (kan veel korter, je hoeft niet voor alles een nieuwe variabele te introduceren):
<?php
if(count($ErrorArray) > 0)
{
ShowError($_LANG['ERROR']['OCCURED'], $ErrorArray);
}
?>
<?php if(count($ErrorArray) > 0) { ShowError($_LANG['ERROR']['OCCURED'], $ErrorArray); } ?>
functie:
<?php
function ShowError($error_msg, $error_list)
{
echo "<table width='420' border='1' cellspacing='1' cellpadding='1'>\n";
echo "<tr><td><div align='center'>" . $error_msg . "</div></td></tr>\n";
echo "<tr><td><div align='center'><ul>"; // <ul> niet vergeten!
for($i=0; $i < count($error_list); $i++)
{
echo "<li>".$error_list[$i]."</li>\n";
}
echo "</ul></div></td></tr>\n"; // </ul> niet vergeten!
echo "</table>\n";
}
?>
<?php function ShowError($error_msg, $error_list) { echo "<table width='420' border='1' cellspacing='1' cellpadding='1'>\n"; echo "<tr><td><div align='center'>" . $error_msg . "</div></td></tr>\n"; echo "<tr><td><div align='center'><ul>"; // <ul> niet vergeten! for($i=0; $i < count($error_list); $i++) { echo "<li>".$error_list[$i]."</li>\n"; } echo "</ul></div></td></tr>\n"; // </ul> niet vergeten! } ?>
|