Door
dendeze ikke
op 02-02-2014 21:28
gewijzigd op 02-02-2014 21:54
1.179 views
Hoi,
ik ben aan het proberen een formulier van 4 pagina's werkend te krijgen. Dit is de opzet:
Het eerste probleem dat ik tegenkom is dat hij na de eerste pagina al submit.
<?php
<script type="text/javascript">
$('#submit_fourth').click(function(){
//send information to server
$(‘form’).unbind(‘submit’).submit();
$('#container').append('< img src="/images/ajax-loader.gif" alt="Currently Loading" id="loading" />');
console.log(result);
var name = $('#username').val();
var name = $('#password').val();
var name = $('#email').val();
var name = $('#firstname').val();
var name = $('#lastname').val();
var name = $('#age').val();
var name = $('#gender').val();
var name = $('#country').val();
<script>
$( document ).ready(function() { // .ready wordt automatisch aangeroepen als de pagina helemaal geladen is en de HTML elementen dus ook bestaan en er events aan gekoppeld kunnen worden
$('#submit_fourth').click(function(){ //dit is een eventhandler
// doe iets
return false;
});
// nog meer eventhandlers hier
});
</script>
Ik heb hem nu zo staan Frank, maar hij submit nog steeds na eerste.
<?php
<form action="verwerk_registratie.php" method="POST">
//hier het formulier
?>
<?php
$( document ).ready(function() { // .ready wordt automatisch aangeroepen als de pagina helemaal geladen is en de HTML elementen dus ook bestaan en er events aan gekoppeld kunnen worden
$('#submit_fourth').click(function(){
//send information to server
$('#container').append('< img src="images/ajax-loader.gif" alt="Currently Loading" id="loading" />');
console.log(result);
var name = $('#username').val();
var name = $('#password').val();
var name = $('#email').val();
var name = $('#firstname').val();
var name = $('#lastname').val();
var name = $('#age').val();
var name = $('#gender').val();
var name = $('#country').val();
Je moet het versturen van het formulier in het algemeen uitschakelen, en niet in de click event van de submit buttons.[code lang="js"]
<script type="text/javascript">
$("#myform").on('submit', function(e){
e.preventDefault();
return false;
//dit voorkomt dat het formulier op de normale verstuurt wordt
});
//hier zet dan alle event handlers voor de volgende knop
// en voor de opslaan knop:
$("#submit_fourth").on('click', function(){
// ............
$.ajax({
url: 'verwerk_registratie',
type: 'POST',
data: $("#myform").serialize(),
success: function(result){
// ..............
}
});
});
</script>
</body>
</html>
[/code]
Het moet dus niet in document.ready, dat kan, maar als je script vlak voor de afsluitende body tag plaats is ook afdoende.
vervolgens van je met jquery het click-event af om de volgende div zichtbaar te maken :
$(document).ready(function(e) { // wordt automatisch eenmalig aangeroepen als de pagina geladen is
$('#step1').click(function(e) { // als er op de button met id="submit_first" geklikt wordt
$('#first_step').hide(); // verberg div
$('#second_step').show(); // laat dan de verborgen div zien
});
});
Uiteindelijk is het werkend en slaat het gegevens op in de databank.
1ste probleem (firebug)
<b>Strict Standards</b>: Only variables should be passed by reference in <b>C:\xampp\htdocs\alfa\Registreren\verwerk_registratie.php</b> on line <b>7</b><br />
2de probleem
<----- DEBUG sql<br><br>INSERT INTO registratie(username, password, email, firstname, lastname, age, gender, country, ip, host) values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)<br><br>---->U bent nu geregistreerd.
Hij geeft geen respons terug dat alles goed is verlopen
<?php
$('#submit_fourth').click(function(){
//send information to server
var name = $('#username').val();
var name = $('#password').val();
var name = $('#email').val();
var name = $('#firstname').val();
var name = $('#lastname').val();
var name = $('#age').val();
var name = $('#gender').val();
var name = $('#country').val();