Contact formulier, Echo probleem met Ajax.. vaaaag
http://www.dynamicdrive.com/dynamicindex17/ajaxcontent.htm
Zo heb ik ook een pagina, contact.php in de hoofdpagina. Wanneer er iets niet goed in het formuleer wordt ingevuld "print" hij het op een nieuwe pagina. Terwijl die eigenlijk gewoon op de eigenpagina moet echo'en in de hoofdpagina.
http://philiphannaart.nl/wijngilde/
Ga via inschrijven! naar Contact.
en klik op verzenden en je ziet het probleem
Hoe kan ik dit oplossen?
Ik heb al dagen gegoogeld en in boeken gebladerd, maar kom er niet uit...
De code van de link:
De code van contact.php
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
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
<form method="POST" action="contact.php">
<p>Naam:<br>
<input name="naam" type="text" class="style4" value=<? print' "'.$_POST['naam'].'" ' ?> size="36">
<br>
E-mail:
<br>
<input name="emailadres" type="text" class="style4" value=<? print' "'.$_POST['emailadres'].'" ' ?> size="36">
<br>
Onderwerp:
<br>
<input name="onderwerp" type="text" class="style4" value=<? print' "'.$_POST['onderwerp'].'" ' ?> size="36">
<br>
Bericht:<br>
<textarea name="bericht"
cols="38" rows="4" class="style4" type="text"><?php echo''.$_POST['bericht'].''?></textarea>
<input type="submit" value="Verzenden"
name="submit">
<input type="reset" value="Opnieuw" name="reset">
<br>
</p>
<?php //contactformulier Webstudio10 1.0
ini_set('display_errors', 1);
error_reporting (E_ALL & ~E_NOTICE);
// kijk of formulier gesubmit is
if (isset ($_POST['submit'])) {
$problem = FALSE; // tot dusver geen problemen
// elk veld controleren
if (empty ($_POST['naam'])) {
$problem = TRUE;
print'<b>Vul alstublieft uw naam in</b><br>';
}
if (empty ($_POST['emailadres'])) {
$problem = TRUE;
print'<b>Vul alstublieft uw emailadres in</b><br>';
}
if (empty ($_POST['onderwerp'])) {
$problem = TRUE;
print'<b>Vul alstublieft een onderwerp in</b><br>';
}
if (empty ($_POST['bericht'])) {
$problem = TRUE;
print'<b>Vul alstublieft een bericht in</b>';
}
if (!$problem) {
print'<b>Uw bericht is verstuurd!</b>';
// email versturen
$body = "
Naam: {$_POST['naam']}
Email: {$_POST['emailadres']}
Bericht:
{$_POST['bericht']}";
mail ('[email protected]',$onderwerp,$body,"From: {$_POST['emailadres']}");
}
}
?>
</form>
<p>Naam:<br>
<input name="naam" type="text" class="style4" value=<? print' "'.$_POST['naam'].'" ' ?> size="36">
<br>
E-mail:
<br>
<input name="emailadres" type="text" class="style4" value=<? print' "'.$_POST['emailadres'].'" ' ?> size="36">
<br>
Onderwerp:
<br>
<input name="onderwerp" type="text" class="style4" value=<? print' "'.$_POST['onderwerp'].'" ' ?> size="36">
<br>
Bericht:<br>
<textarea name="bericht"
cols="38" rows="4" class="style4" type="text"><?php echo''.$_POST['bericht'].''?></textarea>
<input type="submit" value="Verzenden"
name="submit">
<input type="reset" value="Opnieuw" name="reset">
<br>
</p>
<?php //contactformulier Webstudio10 1.0
ini_set('display_errors', 1);
error_reporting (E_ALL & ~E_NOTICE);
// kijk of formulier gesubmit is
if (isset ($_POST['submit'])) {
$problem = FALSE; // tot dusver geen problemen
// elk veld controleren
if (empty ($_POST['naam'])) {
$problem = TRUE;
print'<b>Vul alstublieft uw naam in</b><br>';
}
if (empty ($_POST['emailadres'])) {
$problem = TRUE;
print'<b>Vul alstublieft uw emailadres in</b><br>';
}
if (empty ($_POST['onderwerp'])) {
$problem = TRUE;
print'<b>Vul alstublieft een onderwerp in</b><br>';
}
if (empty ($_POST['bericht'])) {
$problem = TRUE;
print'<b>Vul alstublieft een bericht in</b>';
}
if (!$problem) {
print'<b>Uw bericht is verstuurd!</b>';
// email versturen
$body = "
Naam: {$_POST['naam']}
Email: {$_POST['emailadres']}
Bericht:
{$_POST['bericht']}";
mail ('[email protected]',$onderwerp,$body,"From: {$_POST['emailadres']}");
}
}
?>
</form>
Gewijzigd op 01/01/1970 01:00:00 door Philip van Leeuwen
Hopelijk heeft iemand een oplossing voor het 'print' probleem..
bump
Bumpen::
SanThe.
Ik snap het alleen nog niet helemaal..
Hoe zou dit stukje er dan uitzien met de request functie?
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<form method="POST" action="contact.php">
Naam:<br>
<input name="naam" type="text" class="style4" value=<? print' "'.$_POST['naam'].'" ' ?> size="36">
<input type="submit" value="Verzenden" name="submit">
<input type="reset" value="Opnieuw" name="reset">
[pink floyd modus]Hello, hello, hello Is there anybody in there?[/pink floyd modus]
Voorbeeldje:
html gedeelte
Code (php)
1
2
3
4
2
3
4
<input type="text" id="naam"/> Naam <br/>
<input type="text" id="bericht"/> Bericht <br/>
<input type="button" onClick="zend_formulier_met_get();" value="met GET"/> <br/>
<input type="button" onClick="zend_formulier_met_post();" value="met POST"/> <br/>
<input type="text" id="bericht"/> Bericht <br/>
<input type="button" onClick="zend_formulier_met_get();" value="met GET"/> <br/>
<input type="button" onClick="zend_formulier_met_post();" value="met POST"/> <br/>
javascript gedeelte
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
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
function zend_formulier_met_get()
{
var naam = document.getElementById('naam').value;
var bericht = document.getElementById('bericht').value;
var url = "index.php?page=verzend_bericht&naam=" + naam +"&bericht=" + bericht;
xmlHttpLoad.open("GET", url, true);
xmlHttpLoad.onreadystatechange = handleHttpResponse_zend_formulier;
xmlHttpLoad.send(null);
}
function zend_formulier_met_post()
{
var naam = document.getElementById('naam').value;
var bericht = document.getElementById('bericht').value;
var passData = 'naam='+escape(naam)+'&bericht='+escape(bericht);
var url = "index.php?page=verzend_bericht;
xmlHttpLoad.open("POST", url, true);
xmlHttpLoad.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttpLoad.onreadystatechange = handleHttpResponse_zend_formulier;
xmlHttpLoad.send( passData );
}
function handleHttpResponse_zend_formulier()
{
if(xmlHttpLoad.readyState == 4)
{
// ... doe wat je moet doen, bv.
document.getElementById('resultaat').innerHTML = xmlHttpLoad.responseText;
}
}
{
var naam = document.getElementById('naam').value;
var bericht = document.getElementById('bericht').value;
var url = "index.php?page=verzend_bericht&naam=" + naam +"&bericht=" + bericht;
xmlHttpLoad.open("GET", url, true);
xmlHttpLoad.onreadystatechange = handleHttpResponse_zend_formulier;
xmlHttpLoad.send(null);
}
function zend_formulier_met_post()
{
var naam = document.getElementById('naam').value;
var bericht = document.getElementById('bericht').value;
var passData = 'naam='+escape(naam)+'&bericht='+escape(bericht);
var url = "index.php?page=verzend_bericht;
xmlHttpLoad.open("POST", url, true);
xmlHttpLoad.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttpLoad.onreadystatechange = handleHttpResponse_zend_formulier;
xmlHttpLoad.send( passData );
}
function handleHttpResponse_zend_formulier()
{
if(xmlHttpLoad.readyState == 4)
{
// ... doe wat je moet doen, bv.
document.getElementById('resultaat').innerHTML = xmlHttpLoad.responseText;
}
}
Merk op: de <form></form> tag heb je niet meer nodig.
ipv. een submit knop zet je een button, met een onClick tag.
Je kiest maar of je het via post of get doet. Naargelang wat er in het formulier komt, is het ene beter dan het andere.
Als je textarea's hebt, waar grote stukken tekst komen, zit je sowieso beter met POST.
xmlHttpLoad is het object dat alle ajax regelt; je maakt het bv. aan met de functie createHTTPHandler()
Die functie heb ik hier gedefinieerd:
http://phphulp.nl/forum/showtopic.php?cat=15&id=50783&page=
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay