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();

$.ajax({
url: 'verwerk_registratie',
type: 'POST',
data: 'username='+username+'&password='+password+'&email='+email+'&firstname='+firstname+'&lastname='+lastname+'&age='+age+'&gender='+gender+'&country='+country,

succes: function(result) {

$('#response').remove();
$('#container').append('<p id="respons">' + result + '</p>');
$('#loading').fadeOut(500, function)() {
$(this).remove();
}
})
}

return false;
});
</script>
?>
Gewijzigd :)
moeten we jou nu nog uitleggen dat je de code even tussen codetags moet plaatsen?

de event handlers moet je in de functie .ready() plaatsen.


$( document ).ready(function() {
  // eventhandlers hier
});


ik zie ook trema's (`) in plaats van quotes (')
<?php
$( document ).ready(function() {
// eventhandlers hier
});
?>
deze functie vind ik hier niet terug Frank.
waar moet ik die toepassen?

De trema's zijn vervangen

<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();

$.ajax({
url: 'verwerk_registratie',
type: 'POST',
data: 'username='+username+'&password='+password+'&email='+email+'&firstname='+firstname+'&lastname='+lastname+'&age='+age+'&gender='+gender+'&country='+country,

succes: function(result) {

$('#response').remove();
$('#container').append('<p id="respons">' + result + '</p>');
$('#loading').fadeOut(500, function)() {
$(this).remove();
}
});
}
});
return false;
});
?>
dit is de verwerking momenteel:
<?php
<?php
include('../system/configmysqli.connection.php');
//toevoegen registratie database
$query = "INSERT into registratie(username, password, email, firstname, lastname, age, gender, country, ip, host) values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";

$stmt = $link->stmt_init();
if($stmt->prepare($query)) {
$stmt->bind_param('ssssssssss', $_POST['username'], $_POST['password'], $_POST['email'], $_POST['firstname'], $_POST['lastname'], $_POST['age'], $_POST['gender'], $_POST['country'], $_POST['ip'], $_POST['host']);
$stmt->execute();
}
if($stmt) {
echo "<----- DEBUG sql<br><br>" . $query . "<br><br>---->";

echo "U bent nu geregistreerd.";
} else {
echo "Er is iets fout, probeer u opnieuw te registreren.";
}
//email verzenden
?>
?>
Probeer dan eens event.preventDefault(); toe te voegen aan je event tussen regel 4 en 5
Steeds hetzelfde effect.Hij loopt door na de eerste, verwerkt, maar plaatst ook niets in de databank.
<----- DEBUG sql

INSERT into registratie(username, password, email, firstname, lastname, age, gender, country, ip, host) values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)

---->U bent nu geregistreerd.
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.
Ik heb de code gezien en even aangepast.

in het kort komt het hier op neer:

als je een formulier niet wilt laten submitten maak dan een knop met het type button aan en niet met het type submit.

dus:

<input type="button" id="step1" name="step1" value="volgende stap"/>


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
<form name="myform" action="verwerk_registratie.php" method="POST">
?>

<?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();

$.ajax({
url: 'verwerk_registratie.php',
type: 'POST',
data: $("#myform").serialize(),

succes: function(result) {

console.log(result);

}
})
return false;
});
?>

verwerk_registratie.php
<?php
include('../system/configmysqli.connection.php');
//toevoegen registratie database
$query = "INSERT INTO registratie(username, password, email, firstname, lastname, age, gender, country, ip, host) values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
$stmt = $link->stmt_init();
if($stmt->prepare($query)) {
$stmt->bind_param('ssssssssss', $_POST['username'], $_POST['password'], $_POST['email'], $_POST['firstname'], $_POST['lastname'], $_POST['age'], $_POST['gender'], $_POST['country'], $_SERVER['REMOTE_ADDR'], gethostbyaddr($_SERVER['REMOTE_ADDR']));
$stmt->execute();
}
if($stmt) {
echo "<----- DEBUG sql<br><br>" . $query . "<br><br>---->";

echo "U bent nu geregistreerd.";
} else {
echo "Er is iets fout, probeer u opnieuw te registreren.";
}
//email verzenden
?>

Reageren