Nieuw lid |
|
Is goed. Ik was eerst met een testfile bezig. Ik zet hier de 'originele' neer. Voor een groot gedeelte:
Dit is een gedeelte van het formulier:
<form method='post' name="formulier" action='index.php?page=controle'>
<table class='controllabove'>
<?php
$sqlgroep = "SELECT * FROM groepen
LEFT JOIN producten ON producten.groep = groepen.groepid
WHERE groepid = 3
GROUP BY producten.groep
";
$resgroep = mysql_query($sqlgroep);
while ($row = mysql_fetch_array($resgroep))
{
?>
<tr>
<td class='controlhead' width='130'> <b> <?php echo $row['groepnaam'] ?>: </b>
<input type='hidden' class='operaform' name='groepnm[]' value='<?php echo $row['groepnaam']; ?>'>
<input type='text' class='operaform' name='groepid[]' value='<?php echo $row['groepid']; ?>'></td>
<td class='control' colspan='2'> <input type='text' class='operalform' name='type1[]' onmouseover="this.className='operalform hoverinput'" onmouseout="this.className='operalform'"/></td>
</tr>
<?php
}
?>
<tr>
<td colspan='3' class='button'> <input type='submit' class='button' value='Verstuur'></td>
</tr>
</table>
</form>
<form method='post' name="formulier" action='index.php?page=controle'> <table class='controllabove'> <?php $sqlgroep = "SELECT * FROM groepen LEFT JOIN producten ON producten.groep = groepen.groepid WHERE groepid = 3 GROUP BY producten.groep "; { ?> <tr> <td class='controlhead' width='130'> <b> <?php echo $row['groepnaam'] ?>: </b> <input type='hidden' class='operaform' name='groepnm[]' value=' <?php echo $row['groepnaam']; ?>'> <input type='text' class='operaform' name='groepid[]' value=' <?php echo $row['groepid']; ?>'></td> <td class='control' colspan='2'> <input type='text' class='operalform' name='type1[]' onmouseover="this.className='operalform hoverinput'" onmouseout="this.className='operalform'"/></td> </tr> <?php } ?> <tr> <td colspan='3' class='button'> <input type='submit' class='button' value='Verstuur'></td> </tr> </table> </form>
En wat erna komt:
<form method='post' name="formulier" action='index.php?page=controle'>
<table class='controllabove'>
<?php
$slpError = array(); // Error Array
// Foreach
foreach ($_POST['type1'] as $key => $val)
{
$iType = $_POST['type1'][$key];
$iType = str_replace(",", ".", $iType);
$iName = $_POST['groepnm'][$key];
$iGroep = $_POST['groepid'][$key];
// Query
$sqlgroep = "SELECT * FROM groepen
LEFT JOIN producten ON producten.groep = groepen.groepid
WHERE groepid LIKE '$iGroep'";
$resgroep = mysql_query($sqlgroep);
$row = mysql_fetch_array($resgroep);
// Controleren of de ingevulde waarde tussen de minimale en maximale waarde ligt
if(!is_string($iType) || !is_numeric($iType) || $iType < $row['min'] || ( $iType > $row['max']))
{
$slpError['grouperror'] = 'Minimale waarde is '. round($row['min']) .' Maximale waarde is '. round($row['max']) .' en jij hebt '. $iType .' ('. $iGroep .')';
}
// Foreach Sluiten
}
?>
<?php
// Als er geen fouten zijn versturen naar database
$fouten = count($slpError);
if ($fouten == 0)
{
echo "versturen naar database";
}
else
{
foreach ($_POST['type1'] as $key => $value)
{
$iType = $_POST['type1'][$key];
$iType = str_replace(",", ".", $iType);
$iName = $_POST['groepnm'][$key];
$iGroep = $_POST['groepid'][$key];
?>
<tr>
<td class="good"> <?php echo $iName; ?></td><td class="good">
<?php echo isset($slpError['grouperror']) ? '<input type="text" class="errorform" name="type1[]" value="'. $iType .'">': '<input type="text" class="goodform" name="type1[]" value="'. $iType .'">' ?>
</tr>
<input type='hidden' class='operaform' name='groepnm[]' value='<?php echo $iName; ?>'>
<input type='hidden' class='operaform' name='groepid[]' value='<?php echo $iGroep; ?>'>
<?php
// Sluit Foreach
}
/* Sluit } else { */
}
?>
<tr>
<td colspan='3' class='button'> <input type='submit' class='button' value='Verstuur'></td>
</tr>
</table>
</form>
<form method='post' name="formulier" action='index.php?page=controle'> <table class='controllabove'> <?php $slpError = array(); // Error Array // Foreach foreach ($_POST['type1'] as $key => $val) { $iType = $_POST['type1'][$key]; $iName = $_POST['groepnm'][$key]; $iGroep = $_POST['groepid'][$key]; // Query $sqlgroep = "SELECT * FROM groepen LEFT JOIN producten ON producten.groep = groepen.groepid WHERE groepid LIKE '$iGroep'"; // Controleren of de ingevulde waarde tussen de minimale en maximale waarde ligt if(!is_string($iType) || !is_numeric($iType) || $iType < $row['min'] || ( $iType > $row['max'])) { $slpError['grouperror'] = 'Minimale waarde is '. round($row['min']) .' Maximale waarde is '. round($row['max']) .' en jij hebt '. $iType .' ('. $iGroep .')'; } // Foreach Sluiten } ?> <?php // Als er geen fouten zijn versturen naar database $fouten = count($slpError); if ($fouten == 0) { echo "versturen naar database"; } else { foreach ($_POST['type1'] as $key => $value) { $iType = $_POST['type1'][$key]; $iName = $_POST['groepnm'][$key]; $iGroep = $_POST['groepid'][$key]; ?> <tr> <td class="good"> <?php echo $iName; ?></td><td class="good"> <?php echo isset($slpError['grouperror']) ? '<input type="text" class="errorform" name="type1[]" value="'. $iType .'">': '<input type="text" class="goodform" name="type1[]" value="'. $iType .'">' ?> </tr> <input type='hidden' class='operaform' name='groepnm[]' value=' <?php echo $iName; ?>'> <input type='hidden' class='operaform' name='groepid[]' value=' <?php echo $iGroep; ?>'> <?php // Sluit Foreach } /* Sluit } else { */ } ?> <tr> <td colspan='3' class='button'> <input type='submit' class='button' value='Verstuur'></td> </tr> </table> </form>
Bij dit formulier controleert hij trouwens of iets liggen tussen twee bepaalde getallen. De uitleg daarover bespaar ik jullie Dat gaat overigens goed. Alleen wil ik dus dat wanneer 1 veld niet goed is die rood gekleurd wordt en die wel juist is rood.
Edit:
Ik heb hier:
echo isset($slpError['grouperror'][$key])
Van gemaakt. Dan werkt het iets beter...... maar hij pakt altijd de eerste die is voorgekomen. Dus zeg maar de 0 van de loop. De volgende markeert hij dan als goed. Terwijl de eerste goed is en de tweede fout. Wanneer ik de eerste fout invul en de tweede goed dan is het wel goed.
Ik vermoed dat ik iets met de ID moet doen. Alleen weet ik momenteel niet hoe.
|