lege velden uitfilteren
Ik heb een reserverings-formulier waar klanten een Schiphol-Reservering kunnen maken.
Zoals het script nu werkt, en de klant drukt op verzenden krijgt hij een overzicht te zien van de ingevoerde velden ter controle.
Hier staan nu ook de niet ingevulde velden( sommige velden zijn optioneel of hebben met de retourrit te maken die wel of niet geboekt wordt).
Dit vind ik een beetje onzinnig, en zou graag alleen de ingevulde velden willen retourneren.
Hoe kan ik diet voor elkaar krijgen?
Met de kanttekening er bij dat ik met een date picker de datum laat selecteren en die de waardes dag1, maand1 en jaar1 aan het script aanbied en die ik later samenvoeg als
Code (php)
1
2
3
2
3
<?php
$datum1 = $aResultaat['dag1'] .'-'. $aResultaat['maand1'] .'-'. $aResultaat['jaar1'];
?>
$datum1 = $aResultaat['dag1'] .'-'. $aResultaat['maand1'] .'-'. $aResultaat['jaar1'];
?>
Dus een gewone foreach lus werkt volgens mij niet, omdat ik dan op een gegeven moment 3 losse waardes voor de datum terug krijg op het scherm.
Dit is mijn script zoals het nu werkt:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
session_start();
ini_set('display_errors', 1);
error_reporting(E_ALL);
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
// Declareren van errors en input arrays
$_SESSION['errors'] = array();
$_SESSION['input'] = $_POST;
// Verplichte velden
$aVerplicht = array('naam', 'telefoonnummer', 'emailadres');
// Definieren van filters voor verschillende inputvelden.
$aFilters = array (
'naam' => NULL,
'adres' => NULL,
'woonplaats' => NULL,
'bedrijf' => NULL,
'telefoonnummer' => NULL,
'emailadres' => FILTER_VALIDATE_EMAIL,
'aantalpersonen' => NULL,
'dag1' => NULL,
'maand1' => NULL,
'jaar1' => NULL,
'uur1' => NULL,
'min1' => NULL,
'retour' => NULL,
'ophalen' => NULL,
'straat_bestemming' => NULL,
'plaats_bestemming' => NULL,
'bedrijf_bestemming' => NULL,
'dag2' => NULL,
'maand2' => NULL,
'jaar2' => NULL,
'uur2' => NULL,
'min2' => NULL,
'mobiel' => NULL,
'vluchtnummer' => NULL,
'opmerkingen' => NULL,
'contant' => NULL,
'creditcard' => NULL,
'telefonisch_bevestigen' => NULL,
'via_email_bevestigen' => NULL
);
// Uitvoeren van de filters en doorlopen van het resultaat
$aResultaat = filter_input_array(INPUT_POST, $aFilters);
$_SESSION['sResultaat'] = $aResultaat;
foreach($aResultaat as $sKey => $sValue)
{
$sValue = trim($sValue);
if(empty($sValue) && in_array($sKey, $aVerplicht))
{
$_SESSION['errors'][$sKey] = true;
$aErrors[] = 'U bent vergeten uw '.$sKey.' in te vullen.';
}
}
?>
session_start();
ini_set('display_errors', 1);
error_reporting(E_ALL);
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
// Declareren van errors en input arrays
$_SESSION['errors'] = array();
$_SESSION['input'] = $_POST;
// Verplichte velden
$aVerplicht = array('naam', 'telefoonnummer', 'emailadres');
// Definieren van filters voor verschillende inputvelden.
$aFilters = array (
'naam' => NULL,
'adres' => NULL,
'woonplaats' => NULL,
'bedrijf' => NULL,
'telefoonnummer' => NULL,
'emailadres' => FILTER_VALIDATE_EMAIL,
'aantalpersonen' => NULL,
'dag1' => NULL,
'maand1' => NULL,
'jaar1' => NULL,
'uur1' => NULL,
'min1' => NULL,
'retour' => NULL,
'ophalen' => NULL,
'straat_bestemming' => NULL,
'plaats_bestemming' => NULL,
'bedrijf_bestemming' => NULL,
'dag2' => NULL,
'maand2' => NULL,
'jaar2' => NULL,
'uur2' => NULL,
'min2' => NULL,
'mobiel' => NULL,
'vluchtnummer' => NULL,
'opmerkingen' => NULL,
'contant' => NULL,
'creditcard' => NULL,
'telefonisch_bevestigen' => NULL,
'via_email_bevestigen' => NULL
);
// Uitvoeren van de filters en doorlopen van het resultaat
$aResultaat = filter_input_array(INPUT_POST, $aFilters);
$_SESSION['sResultaat'] = $aResultaat;
foreach($aResultaat as $sKey => $sValue)
{
$sValue = trim($sValue);
if(empty($sValue) && in_array($sKey, $aVerplicht))
{
$_SESSION['errors'][$sKey] = true;
$aErrors[] = 'U bent vergeten uw '.$sKey.' in te vullen.';
}
}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?PHP
$datum1 = $aResultaat['dag1'] .'-'. $aResultaat['maand1'] .'-'. $aResultaat['jaar1'];
$datum2 = $aResultaat['dag2'] .'-'. $aResultaat['maand2'] .'-'. $aResultaat['jaar2'];
$tijd1 = $aResultaat['uur1'] .':'. $aResultaat['min1'];
$tijd2 = $aResultaat['uur2'] .':'. $aResultaat['min2'];
// Verwerk het formulier als er geen fouten opgetreden zijn.
if(isset($aErrors))
{
echo '<ul>';
foreach($aErrors as $sError)
{
echo '<li>'.$sError.'</li>';
}
echo '</ul>';
echo "<br><font face=\"Verdana\" size=\"2\" color=\"#000000\">Klik op <a href=javascript:history.back(1)>Aanpassen</a> om terug te keren naar het formulier.</font><br>";
}
if(empty($_SESSION['errors']))
{
echo "<font face=\"Verdana\" size=\"2\" color=\"#000000\">U staat op het punt de volgende gegevens naar ons te verzenden</font><br>";
echo "<font face=\"Verdana\" size=\"2\" color=\"#000000\">Leest u a.u.b. de ingevoerde gegevens nog even aandachtig door.</font><br>";
echo "<font face=\"Verdana\" size=\"2\" color=\"#000000\">Als al uw gegevens in orde zijn klik dan onder op de pagina op \"Reserveren\".</font><br>";
echo "<font face=\"Verdana\" size=\"2\" color=\"#000000\">Wilt u nog iets aan uw reservering veranderen, klik dan onder op de pagina op \"Aanpassen\"</font><br>";
echo "<ul>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Naam :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['naam'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Adres :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['adres'] ." </font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Woonplaats:</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['woonplaats'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Bedrijf(indien zakelijke reservering) is :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['bedrijf'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Telefoonnummer :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['telefoonnummer'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Emailadres :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['emailadres'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Aantal personen:</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['aantalpersonen'] ." personen </font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Vertrekdatum :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $datum1 ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Vertrektijd :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $tijd1 ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">U reserveert ook voor retour :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['retour'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">U reserveert alleen vanaf Schiphol afhalen:</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['ophalen'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Straatnaam bestemming :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['straat_bestemming'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Plaatsnaam bestemming :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['plaats_bestemming'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Bedrijf op bestemming :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['bedrijf_bestemming'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Aankomstdatum :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $datum2 ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Aankomsttijd :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $tijd2 ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Mobiele telefoonnummer :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['mobiel'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Vluchtnummer :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['vluchtnummer'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Opmerkingen :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['opmerkingen'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Betaald contant :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['contant'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Betaald met creditcard en stemt in met een verhoging van € 3,00 :</font><font face=\"Verdana\" size=\"2\" color=\"ff0000\">". $aResultaat['creditcard'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Telefonische bevestiging :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['telefonisch_bevestigen'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Bevestiging via een email :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['via_email_bevestigen'] ."</font><br>";
echo "</ul>";
echo "<br><font face=\"Verdana\" size=\"2\" color=\"#000000\">Klik op <a href=javascript:history.back(1)>Aanpassen</a> om terug te keren naar het formulier.</font><br>";
echo "<font face=\"Verdana\" size=\"2\" color=\"#000000\">Klik op <a href=mail.php?sResultaat>Reserveren</a> om de door u gecontroleerde gegevens werkelijk te versturen.</font> ";
}
}
?>
$datum1 = $aResultaat['dag1'] .'-'. $aResultaat['maand1'] .'-'. $aResultaat['jaar1'];
$datum2 = $aResultaat['dag2'] .'-'. $aResultaat['maand2'] .'-'. $aResultaat['jaar2'];
$tijd1 = $aResultaat['uur1'] .':'. $aResultaat['min1'];
$tijd2 = $aResultaat['uur2'] .':'. $aResultaat['min2'];
// Verwerk het formulier als er geen fouten opgetreden zijn.
if(isset($aErrors))
{
echo '<ul>';
foreach($aErrors as $sError)
{
echo '<li>'.$sError.'</li>';
}
echo '</ul>';
echo "<br><font face=\"Verdana\" size=\"2\" color=\"#000000\">Klik op <a href=javascript:history.back(1)>Aanpassen</a> om terug te keren naar het formulier.</font><br>";
}
if(empty($_SESSION['errors']))
{
echo "<font face=\"Verdana\" size=\"2\" color=\"#000000\">U staat op het punt de volgende gegevens naar ons te verzenden</font><br>";
echo "<font face=\"Verdana\" size=\"2\" color=\"#000000\">Leest u a.u.b. de ingevoerde gegevens nog even aandachtig door.</font><br>";
echo "<font face=\"Verdana\" size=\"2\" color=\"#000000\">Als al uw gegevens in orde zijn klik dan onder op de pagina op \"Reserveren\".</font><br>";
echo "<font face=\"Verdana\" size=\"2\" color=\"#000000\">Wilt u nog iets aan uw reservering veranderen, klik dan onder op de pagina op \"Aanpassen\"</font><br>";
echo "<ul>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Naam :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['naam'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Adres :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['adres'] ." </font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Woonplaats:</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['woonplaats'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Bedrijf(indien zakelijke reservering) is :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['bedrijf'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Telefoonnummer :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['telefoonnummer'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Emailadres :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['emailadres'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Aantal personen:</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['aantalpersonen'] ." personen </font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Vertrekdatum :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $datum1 ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Vertrektijd :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $tijd1 ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">U reserveert ook voor retour :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['retour'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">U reserveert alleen vanaf Schiphol afhalen:</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['ophalen'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Straatnaam bestemming :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['straat_bestemming'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Plaatsnaam bestemming :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['plaats_bestemming'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Bedrijf op bestemming :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['bedrijf_bestemming'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Aankomstdatum :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $datum2 ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Aankomsttijd :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $tijd2 ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Mobiele telefoonnummer :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['mobiel'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Vluchtnummer :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['vluchtnummer'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Opmerkingen :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['opmerkingen'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Betaald contant :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['contant'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Betaald met creditcard en stemt in met een verhoging van € 3,00 :</font><font face=\"Verdana\" size=\"2\" color=\"ff0000\">". $aResultaat['creditcard'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Telefonische bevestiging :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['telefonisch_bevestigen'] ."</font><br>";
echo "<li><font face=\"Verdana\" size=\"2\" color=\"#000000\">Bevestiging via een email :</font><font face=\"Verdana\" size=\"2\" color=\"#ff0000\">". $aResultaat['via_email_bevestigen'] ."</font><br>";
echo "</ul>";
echo "<br><font face=\"Verdana\" size=\"2\" color=\"#000000\">Klik op <a href=javascript:history.back(1)>Aanpassen</a> om terug te keren naar het formulier.</font><br>";
echo "<font face=\"Verdana\" size=\"2\" color=\"#000000\">Klik op <a href=mail.php?sResultaat>Reserveren</a> om de door u gecontroleerde gegevens werkelijk te versturen.</font> ";
}
}
?>
Sowieso zal er niets weergegeven worden als er een verplicht veld vergeten is, dan krijg de gebruiker natuurlijk een foutmelding te zien...
Ik zit een beetje met de manier hoe ik de datum, als leesbare datum op het scherm getoverd krijg terwijl ik het veld/variabele met de foreach lus uit jouw voorbeeld op roep en filter op lege velden.
Als ik puur de gegevens op roep dan zal er op een gegeven moment dit staan:
PHPSESSID: 95df98baecdbc91e24889b7b7cdf4e20
naam: Peter Arendse
adres: Zwartemeer 34
woonplaats: Zaandam
bedrijf:
telefoonnummer: 075-6314289
emailadres: [email protected]
aantalpersonen: 4
dag1: 22
maand1: 01
jaar1: 2008
uur1: 07
min1: 00
Ik hoop dat je ziet wat ik bedoel.
En daarom echo ik nu de variabelen uit het formulier met het tweede stuk van de code hierboven op die wijze om de datum en tijd netjes in zijn geheel te laten zien.
Als er een andere manier voor is dan hoor ik dat graag.
Gewijzigd op 01/01/1970 01:00:00 door Peter Arendse