Ik ben al enleke dagen bezig met het vinden van een oplossing voor een probleem maar krijg de oplossing niet gevonden. Ik heb een paar schriptjes geschreven om een an ander te verduidelijken.
Ik gebruik meesta het volgende scriptje voor het controleren van ingevoerde waardes in formuliervelden:
<table border="0">
<form action="" method="POST">
<tr>
<td align="right">Straat:</td>
<td>
<?php
if($_POST[verwerk] == 'ja' && $_POST[naam] == NULL){
echo 'u dient hier iets in te vullen</br>';
$error ='yes';
}
?>
<input type="text" name="naam" id="naam" value="<?php echo $_POST[naam]; ?>">
</td>
</tr>
<tr>
<td align="right">Adres:</td>
<td>
<?php
if($_POST[verwerk] == 'ja' && $_POST[adres] == NULL){
echo 'u dient hier iets in te vullen</br>';
$error ='yes';
}
?>
<input type="text" name="adres" id="adres" value="<?php echo $_POST[adres]; ?>">
</td>
</tr>
<tr>
<td align="right">Huisnummer:</td>
<td>
<?php
if($_POST[verwerk] == 'ja' && !is_numeric($_POST[huisnummer])){
echo 'u dient hier een numerieke waarde te vullen</br>';
$error ='yes';
}
?>
<input type="text" name="huisnummer" id="huisnummer" value="<?php echo $_POST[huisnummer]; ?>">
</td>
</tr>
<tr>
<td><p> </p>
<p> </p></td>
<td><input type="submit" value="Verwerk"><input name="verwerk" type="hidden" value="ja"></td>
</tr>
</form>
</table>
<?php
if ($_POST[verwerk] == 'ja' && $error != 'yes'){
echo 'verwerk gegevens';
}
?>
Bovenstaand script werkt perfect en heeft in het verleden zijn dienste bewezen, het probleem is alleen dat de scripts (bij veel formuliervelden) heel erg lang worden en heel erg veel herhalingen bevatten.
Om dit probleem op te lossen heb ik geprobeerd door middel van 'function()' een en ander te verkorten, dit is gelukt in onderstaande code:
<?php
function textbox($naam,$type){
?>
<tr>
<td align="right"><?php echo ucfirst($naam); ?></td>
<td>
<?php
if($type == 'tekst'){
if($_POST[verwerk] == 'ja' && $_POST[$naam] == NULL){
echo 'u dient hier iets in te vullen</br>';
$error = 'yes';
}
echo '<input type="text" name="'.$naam.'" id="'.$naam.'" value="'.$_POST[$naam].'">';
}
if($type == 'numeriek'){
if($_POST[verwerk] == 'ja' && !is_numeric($_POST[$naam])){
echo 'u dient hier een numerieke waarde in te vullen</br>';
$error = 'yes';
}
echo '<input type="text" name="'.$naam.'" id="'.$naam.'" value="'.$_POST[$naam].'">';
}
?>
</td>
</tr>
<?php
}
?>
<table border="0">
<form action="" method="POST">
<?php
textbox(voornaam,tekst);
textbox(tussenvoegsel,tekst);
textbox(achternaam,numeriek);
?>
<tr>
<td><p> </p>
<p> </p></td>
<td><input type="submit" value="Verwerk"><input name="verwerk" type="hidden" value="ja"></td>
</tr>
</form>
</table>
<?php
if ($_POST[verwerk] == 'ja' && $error != 'yes'){
echo 'verwerk gegevens';
}
?>
Het probleem bij bovenstaande scriptje is dat de gegevens altijd 'verwerkt' worden, ondanks een 'error' in de ingevoerde velden. Ik weet wat het probleem is; de variabele $error 'wordt niet gezien' in het stukje script:
<?php
if ($_POST[verwerk] == 'ja' && $error != 'yes'){
echo 'verwerk gegevens';
}
?>
Ik heb al van alles geprobeert met return() maar ik krijg de oplossing niet gevonden, zoude jullie misschien eens willen kijken of jullie een oplossing weten?