Redirect naar bedankingspagina werkt niet
Mag ik eens de bestanden doormailen naar jou? Zal misschien eenvoudiger zijn om te testen en probleem te vinden?
Heb je geen testcase die we online kunnen zien? Mogelijk is er in de JavaScript debugger wel wat meer te zien.
http://studiowolf.be/test/contactform/site/contacteer-ons.html
Gewijzigd op 16/01/2017 20:43:41 door Frederic D
Dat komt omdat je een overrulende action="contact.php" hebt. Haal die eens uit je formulier.
Ik heb de action="contact.php" uit mijn formulier gehaald. Werkt niet. Nu krijg ik geen mails meer met de info uit mijn contactformulier.
Dan werkt je AJAX request of jQuery niet.
Iemand daar ervaring mee? Waar zou ik hiervoor hulp kunnen krijgen?
script.js wordt dus niet uitgevoerd, en dus wordt je form gewoon op de klassieke manier gepost naar contact.php (of wat er ook maar in action= staat)
Toevoeging op 17/01/2017 09:46:42:
KNIP
Toevoeging op 17/01/2017 09:55:12:
Maar het probleem waarover hij echt struikelt:
na de regels waar window.location = ... bedankt.html staat
na de else volgen 4 stuks }
Dat hadden er maar 3 moeten zijn.
Toevoeging op 17/01/2017 10:02:48:
Welke editor gebruik je om je script te bouwen?
In Netbeans staan in zo'n geval duidelijke waarschuwingen met rode blokjes en gele bordjes met uitleg
Gewijzigd op 17/01/2017 09:57:51 door Ivo P
Probleem zat idd enkel in het scripts.js bestand.
Bedankt allemaal voor de support. Ik ben terug iets wijzer geworden. :)
Dit is de juiste versie:
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
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
var submitContact = $('#submit-message'),
message = $('#msg');
submitContact.on('click', function(e){
e.preventDefault();
var $this = $(this);
$.ajax({
type: "POST",
url: 'contact.php',
dataType: 'json',
cache: false,
data: $('#contact-form').serialize(),
success: function(data) {
window.location.href = 'http://www.mysite.be/bedankt.html';
if(data.info !== 'error'){
$this.parents('form').find('input[type=text],input[type=email],textarea,select').filter(':visible').val('');
message.hide().removeClass('success').removeClass('error').addClass('success').html(data.msg).fadeIn('slow').delay(5000).fadeOut('slow');
} else {
message.hide().removeClass('success').removeClass('error').addClass('error').html(data.msg).fadeIn('slow').delay(5000).fadeOut('slow');
}
}
});
});
})(jQuery);
message = $('#msg');
submitContact.on('click', function(e){
e.preventDefault();
var $this = $(this);
$.ajax({
type: "POST",
url: 'contact.php',
dataType: 'json',
cache: false,
data: $('#contact-form').serialize(),
success: function(data) {
window.location.href = 'http://www.mysite.be/bedankt.html';
if(data.info !== 'error'){
$this.parents('form').find('input[type=text],input[type=email],textarea,select').filter(':visible').val('');
message.hide().removeClass('success').removeClass('error').addClass('success').html(data.msg).fadeIn('slow').delay(5000).fadeOut('slow');
} else {
message.hide().removeClass('success').removeClass('error').addClass('error').html(data.msg).fadeIn('slow').delay(5000).fadeOut('slow');
}
}
});
});
})(jQuery);
Nu doe je het nog steeds niet goed. Je redirect nu in alle gevallen naar de bedankt-pagina. Ook als er een error optreedt in je validatie.
Erg verwarrend dus voor de bezoeker.
Zie mijn code elders in dit topic.