Dropdown menu contactformulier
Ik ben nieuw hier op het forum en heb echt al heel veel hierop gelezen! Dank daarvoor.
Nu ben ik bezig met een website voor een installateur van zonne-energie.
Hierbij maak ik een contactformulier. Het is dus volledig af enkel lukt het mij gewoon niet voor een dropdown menu te krijgen.
Wat is de bedoeling:
Dat de mensen op zijn website een offerte kunnen aanvragen en voorbeeld kunnen kiezen als volgt:
Welke toepassing:
- Plat dak
- Golfplaten dak
- Pannendak
- Leien dak
- Andere
Dit zou de dropdown moeten zijn, de website zelf is in PHP.
Kunnen jullie mij helpen?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
// Code om te laten zien wat er in $_POST array zit wanneer je het formulier verstuurt.
if($_SERVER['REQUEST_METHOD'] == 'POST') {
echo '<pre>';
print_r($_POST);
echo '</pre>';
}
?>
<form method="post">
<!-- De inhoud van het value-attribuut zie je terug in de $_POST array, de tekst tussen de open- en sluit-tag van <option> zie je in het formulier als een keuzemogelijkheid. -->
<select name="toepassing">
<option value="Plat dak">Plat dak</option>
<option value="Golfplaten dak">Golfplaten dak</option>
...
</select>
<input type="submit">
</form>
// Code om te laten zien wat er in $_POST array zit wanneer je het formulier verstuurt.
if($_SERVER['REQUEST_METHOD'] == 'POST') {
echo '<pre>';
print_r($_POST);
echo '</pre>';
}
?>
<form method="post">
<!-- De inhoud van het value-attribuut zie je terug in de $_POST array, de tekst tussen de open- en sluit-tag van <option> zie je in het formulier als een keuzemogelijkheid. -->
<select name="toepassing">
<option value="Plat dak">Plat dak</option>
<option value="Golfplaten dak">Golfplaten dak</option>
...
</select>
<input type="submit">
</form>
Dit is de code:
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<?php
error_reporting(E_ALL);
session_start();
class SimpelMail {
var $aAan = array(
array('Zonnepanelenofferte','[email protected]')
);
/* Een lijstje met personen waar je naartoe kan sturen. Dat kan natuurlijk ook gewoon 1 persoon zijn, dan gooi je de 2e array gewoon weg en dan komt het allemaal goed */
var $aVelden = array(
// Velden die er in moeten komen:
// naam || verplicht (1=ja, 0=nee) || 0=text,1=textarea
array('Voornaam',1,0), // LET OP, ONDERWERP MOET ER ALTIJD IN, oP NR 0!!!!! (dus gewoon laten staan)
array('Naam',1,0), // LET OP OOK LATEN STAAN!
array('E-mailadres',1,0),
// vanaf hier costum fields toevoegen! //
array('Telefoon',1,0),
<select>
<option value="Plat dak">Plat dak</option>
<option value="Pannendak">Pannendak</option>
<option value="Leien dak">Leien dak</option>
<option value="Andere">Audi</option>
</select>
// tot hier
array('Bericht',1,1)
);
var $sPrefix = '[form]: '; // wat er standaard voor het onderwerp moet komen te staan (kun je dus ook leeglaten)
var $iSpam = 300; // stukje beveiliging dat je niett elke 1 seconde mail krijgt van dezelfde personen. Dit is in seconden.
var $sPage; // alleen veranderen als je pagina iets is zoals ?pagina=contact
var $bIsGelukt;
function Formulier() {
?>
<form method="post" action="<?= $this->sPage; ?>">
<table>
<?php
if(count($this->aAan) > 1)
{
?><tr><td>Aan:</td><td><select name="iAan"><?php
foreach($this->aAan as $iNr => $aData)
{ echo '<option value="'.$iNr.'">'.$aData[0].'</option>'; }
?></select></td></tr><?php
}
foreach($this->aVelden as $iKey=>$aValue) {
$sVal = (isset($_POST[$iKey])) ? htmlspecialchars($_POST[$iKey]) : '';
?><tr><td><?= $aValue[0]; ?>:</td><td><?php
if($aValue[2]==1) {
echo '<textarea name="'.$iKey.'" cols="40" rows="8">'.$sVal.'</textarea>';
}
else {
echo '<input type="text" name="'.$iKey.'" value="'.$sVal.'" />';
}
?></td></tr>
<?php
}
?>
<tr><td colspan="2"><input type="submit" value="Verzenden" /></td></tr>
</table>
</form>
<?php
}
function Mailen() {
$aErr = array();
if(isset($_SESSION['iSpam']) && $_SESSION['iSpam'] > time())
{ $aErr[] = 'Om spam tegen te gaan kunt u slechts 1 maal e-mailen in '.$this->iSpam.' seconden.'; }
foreach($this->aVelden as $iKey => $aVeld) {
if($this->aVelden[$iKey][1]==1) {
if(strlen(trim($_POST[$iKey])) == 0)
{ $aErr[] = 'Je bent het veld '.$aVeld[0].' vergeten.'; }
}
}
if(count($aErr)>0) {
echo 'Het volgende ging fout:<ul>';
foreach($aErr as $sFout)
{ echo '<li>'.$sFout.'</li>'; }
echo '</ul>';
}
else {
if(count($this->aAan)==1)
{ $sAan = $this->aAan[0][1]; }
else
{ $sAan = $this->aAan[$_POST['iAan']][1]; }
$sHeader = "To: ".$sAan."\r\n";
$sHeader .= "From: ".$_POST[0]." ".$_POST[1]." <".$_POST[2].">\r\n";
$sMail = '';
foreach($this->aVelden as $iKey => $aVeld)
{ $sMail .= $aVeld[0].': '.$_POST[$iKey]."\n"; }
if(!@mail($sAan,"Vraag via website",$sMail,$sHeader))
{ echo 'Mailen niet gelukt.';}
else
{
echo 'De e-mail is verzonden, we nemen zo spoedig mogelijk contact met u op. ';
$_SESSION['iSpam'] = time()+$this->iSpam;
$this->bIsGelukt = true;
}
}
}
function Contact() {
if($_SERVER['REQUEST_METHOD']=='POST') {
$this->Mailen();
}
if(!$this->bIsGelukt) {
$this->Formulier();
}
}
}
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Zonnepanelenofferte.eu | Contact</title>
<link rel="stylesheet" type="text/css" href="layout.css" />
</head>
<body>
<div id="content" style="overflow:auto">
<br /><br /><br />
<?php
$aClass = new SimpelMail;
$aClass->sPage = $_SERVER['PHP_SELF'];
$aClass->Contact();
?>
[/CODE]
[size=xsmall][i]Toevoeging op 29/08/2010 10:58:20:[/i][/size]
(Heb blijkbaar probleem voor de volledige code in 1 kader te zetten xD)
error_reporting(E_ALL);
session_start();
class SimpelMail {
var $aAan = array(
array('Zonnepanelenofferte','[email protected]')
);
/* Een lijstje met personen waar je naartoe kan sturen. Dat kan natuurlijk ook gewoon 1 persoon zijn, dan gooi je de 2e array gewoon weg en dan komt het allemaal goed */
var $aVelden = array(
// Velden die er in moeten komen:
// naam || verplicht (1=ja, 0=nee) || 0=text,1=textarea
array('Voornaam',1,0), // LET OP, ONDERWERP MOET ER ALTIJD IN, oP NR 0!!!!! (dus gewoon laten staan)
array('Naam',1,0), // LET OP OOK LATEN STAAN!
array('E-mailadres',1,0),
// vanaf hier costum fields toevoegen! //
array('Telefoon',1,0),
<select>
<option value="Plat dak">Plat dak</option>
<option value="Pannendak">Pannendak</option>
<option value="Leien dak">Leien dak</option>
<option value="Andere">Audi</option>
</select>
// tot hier
array('Bericht',1,1)
);
var $sPrefix = '[form]: '; // wat er standaard voor het onderwerp moet komen te staan (kun je dus ook leeglaten)
var $iSpam = 300; // stukje beveiliging dat je niett elke 1 seconde mail krijgt van dezelfde personen. Dit is in seconden.
var $sPage; // alleen veranderen als je pagina iets is zoals ?pagina=contact
var $bIsGelukt;
function Formulier() {
?>
<form method="post" action="<?= $this->sPage; ?>">
<table>
<?php
if(count($this->aAan) > 1)
{
?><tr><td>Aan:</td><td><select name="iAan"><?php
foreach($this->aAan as $iNr => $aData)
{ echo '<option value="'.$iNr.'">'.$aData[0].'</option>'; }
?></select></td></tr><?php
}
foreach($this->aVelden as $iKey=>$aValue) {
$sVal = (isset($_POST[$iKey])) ? htmlspecialchars($_POST[$iKey]) : '';
?><tr><td><?= $aValue[0]; ?>:</td><td><?php
if($aValue[2]==1) {
echo '<textarea name="'.$iKey.'" cols="40" rows="8">'.$sVal.'</textarea>';
}
else {
echo '<input type="text" name="'.$iKey.'" value="'.$sVal.'" />';
}
?></td></tr>
<?php
}
?>
<tr><td colspan="2"><input type="submit" value="Verzenden" /></td></tr>
</table>
</form>
<?php
}
function Mailen() {
$aErr = array();
if(isset($_SESSION['iSpam']) && $_SESSION['iSpam'] > time())
{ $aErr[] = 'Om spam tegen te gaan kunt u slechts 1 maal e-mailen in '.$this->iSpam.' seconden.'; }
foreach($this->aVelden as $iKey => $aVeld) {
if($this->aVelden[$iKey][1]==1) {
if(strlen(trim($_POST[$iKey])) == 0)
{ $aErr[] = 'Je bent het veld '.$aVeld[0].' vergeten.'; }
}
}
if(count($aErr)>0) {
echo 'Het volgende ging fout:<ul>';
foreach($aErr as $sFout)
{ echo '<li>'.$sFout.'</li>'; }
echo '</ul>';
}
else {
if(count($this->aAan)==1)
{ $sAan = $this->aAan[0][1]; }
else
{ $sAan = $this->aAan[$_POST['iAan']][1]; }
$sHeader = "To: ".$sAan."\r\n";
$sHeader .= "From: ".$_POST[0]." ".$_POST[1]." <".$_POST[2].">\r\n";
$sMail = '';
foreach($this->aVelden as $iKey => $aVeld)
{ $sMail .= $aVeld[0].': '.$_POST[$iKey]."\n"; }
if(!@mail($sAan,"Vraag via website",$sMail,$sHeader))
{ echo 'Mailen niet gelukt.';}
else
{
echo 'De e-mail is verzonden, we nemen zo spoedig mogelijk contact met u op. ';
$_SESSION['iSpam'] = time()+$this->iSpam;
$this->bIsGelukt = true;
}
}
}
function Contact() {
if($_SERVER['REQUEST_METHOD']=='POST') {
$this->Mailen();
}
if(!$this->bIsGelukt) {
$this->Formulier();
}
}
}
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Zonnepanelenofferte.eu | Contact</title>
<link rel="stylesheet" type="text/css" href="layout.css" />
</head>
<body>
<div id="content" style="overflow:auto">
<br /><br /><br />
<?php
$aClass = new SimpelMail;
$aClass->sPage = $_SERVER['PHP_SELF'];
$aClass->Contact();
?>
[/CODE]
[size=xsmall][i]Toevoeging op 29/08/2010 10:58:20:[/i][/size]
(Heb blijkbaar probleem voor de volledige code in 1 kader te zetten xD)
Gewijzigd op 29/08/2010 11:08:31 door Brecht Mussely
Vincent Huisman op 29/08/2010 10:49:36:
dit lijkt mij toch gewoon basic html, http://www.w3schools.com/TAGS/tag_Select.asp
Wij hebben het antwoord intotaal al 3 keer gegeven en 2 keer was er zelfs precies het antwoord. dus zijn er intotaal 2 voorbeelden. maar als jij geen verstand hebt van html, hoe kom je er dan bij om php te leren?!
Kan ik er toch ook niet aan doen :S
Sorry dat ik probeer PHP te leren ...
Gewijzigd op 29/08/2010 11:08:51 door Vincent Huisman
Sorry, form aangepast
kan je dan eens je nieuwe code posten met je select er in?
Select staat erin (lijn 21-26).
jij hebt hem er ook maar gewoon zo ergens in geplakt zonder een idee te hebben waar, hij moet tussen de <form> </form> tags
Sorry als ik je rustige zondag heb afgenomen :$
Thanks aan alle reacties!
graag gedaan hoor ;p