waarde uit array verwijderen
Maar dan het probleem...
Hoe kan ik een veld uit deze array halen zonder dat ik de plaats in de array weet?
Als ik de veldnaam invul bij bijv. unset($errors['veld1']) dan blijft deze gewoon aanwezig. Als ik de plaats ingeef unset($errors[0]); dan lukt het wel.
De plaats weet ik echter niet altijd.
Iemand een idee?
Code (php)
Gewijzigd op 18/12/2010 23:18:39 door Peter van den Dungen
Wat bedoel je met "Hoe kan ik een veld uit deze array halen zonder dat ik de plaats in de array weet?". Kun je iets duidelijker omschrijven wat je precies wilt doen?
Moet je elke keer kijken of $_POST['datum_aanvraag'] is gezet?
Het array vullen doe je zo $errors[] = ..... dus er zal nooit een key in het array zijn met een naam, alleen maar met getallen.
- SanThe - op 18/12/2010 23:40:46:
Het array vullen doe je zo $errors[] = ..... dus er zal nooit een key in het array zijn met een naam, alleen maar met getallen.
Ja dat is volgens mij ook het probleem, is dit op te lossen door een andere array-vorm waarbij tevens de key de &veldnaam krijgt?
}
$key is nu de naam van de key
Karl Karl op 18/12/2010 23:25:47:
Moet je elke keer kijken of $_POST['datum_aanvraag'] is gezet?
ja want anders is elk veld in het formulier een error bij de eerste weergave, dus voordat het formulier verzonden is.
Je moet die foreach pas gaan doorlopen op het moment dat er gepost is.
Gewijzigd op 18/12/2010 23:51:39 door Ozzie PHP
Ozzie PHP op 18/12/2010 23:51:24:
Dat doe je niet goed...
Je moet die foreach pas gaan doorlopen op het moment dat er gepost is.
Je moet die foreach pas gaan doorlopen op het moment dat er gepost is.
Zo ?
Code (php)
Zou dit heel veel uitmaken?
Gewijzigd op 18/12/2010 23:58:28 door Peter van den Dungen
In bovenstaande code heb je overigens niks met de $key gedaan...
if (!isset($_POST['veld1'])) {unset($errors['veld1']);}
Hier heb ik de $key nog niet goed verwerkt of wel?
Toevoeging op 19/12/2010 00:04:14:
[quote
In bovenstaande code heb je overigens niks met de $key gedaan...
[/quote]
Jawel toch, foreach($verplichte_velden as $key => $veldnaam) {
Ik krijg nu problemen met het weergeven van het formulier. Bij de eerste weergave dus.
Toevoeging op 19/12/2010 00:10:24:
komt volgend mij omdat ik in de class van elke veld kijk of het betreffende veld in de array staat. Zoja, dan krijgt deze een rode border.
(in_array('veld1',$errors)
Als de array niet beschikbaar is (eerste weergave) dan komt er ook geen formulier in beeld.
Of ben ik heel krom bezig ;-)
Gewijzigd op 19/12/2010 00:05:08 door Peter van den Dungen
wat zit er in de array $verplichte_velden?
Kan niet alles laten zien i.v.m. gevoelige info
$errors = array();
$verplichte_velden = array(
'klantnummer',
'aanhef',
'voorletters',
'tussenvoegsel',
'achternaam',
'geboortedatum',
'prijs_1',
'prijs_2',
'prijs_3'
);
Gewijzigd op 19/12/2010 00:21:05 door Peter van den Dungen
Code (php)
Nu zitten in de array $errors de namen van de niet ingevulde velden.
Hoe zou je nu een veld kunnen verwijderen? Kan toch nog steeds niet i.v.m. geen key?
waar wil je een veld uit verwijderen als ik vragen mag?
Ik heb bij 3 velden een checkbox achter het veld staan, als deze niet wordt aangevinkt mag het betreffende veld leeg blijven.
Echter, dit veld staat dan wel in de array.
Daarom dacht ik, (!isset(['checkbox']) unset ...........veld
En omdat de array niet leeg is wordt het formulier opnieuw weergegeven.
plaats even je hele code zodat ik kan zien wat je bedoelt
Zo'n checkbox is niet verplicht zeg jij, dus zal die niet in het verplichte array zitten lijkt mij. En dus ook niet in het error array.