Hoi,
ik heb een werkend formuliertje, op het einde stuur ik de gegevens zo door:
<?php
$.ajax({
type: "POST",
url: "submit.php",
data: $('#regForm').serialize(),
dataType: "json",
success: function(msg){

if(parseInt(msg.status)==1)
{
window.location=msg.txt;
}
else if(parseInt(msg.status)==0)
{
error(1,msg.txt);
}

hideshow('loading',0);
}
});
?>
verwerking controle velden:
<?php
// we check if everything is filled in
if(empty($_POST['fname']) || empty($_POST['lname']) || empty($_POST['email']) || empty($_POST['pass']))
{
die(msg(0,"U dient alle velden in te vullen"));
}
// is the sex selected?
if(!(int)$_POST['sex-select'])
{
die(msg(0,"U dient je geslacht te selecteren"));
}
// is the birthday selected?
if(!(int)$_POST['day'] || !(int)$_POST['month'] || !(int)$_POST['year'])
{
die(msg(0,"U dient u geboorte datum in te vullen"));
}
// is the email valid?
if(!(preg_match("/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $_POST['email'])))
die(msg(0,"U dient een geldig email adres in te vullen"));
// hier code verwerking

echo msg(1,"/registreer/");
function msg($status,$txt)
{
return '{"status":'.$status.',"txt":"'.$txt.'"}';
}
?>
Alhoewel de $_POST gecontroleerd word en gevuld is, kan ik toch geen data zichtbaar maken.
Hoe komt dit?
Open je browser console (F12 in IE / Firebug in FF) en kijk of er JS fouten optreden.

Als er geen fouten optreden kijk of je in de success event komt (console.log(msg)), zoniet verstuur je formulier zonder JS, en kijk wat er fout gaat.

Hij loopt door tot de succes event (echo msg(1,"/registreer/");

Maar daarboven zou ik een INSERT moeten kunnen doen en controleren op dubbele gebruikers. (lijn 20)
Echter als ik dit doe in php, dan gebeurt er niets, en loopt het script niet door.
Dus nog steeds niet werkend....op lijn 20 staat deze code nu
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
//variabelen benoemen
$fname = $mysqli->real_escape_string(htmlspecialchars($_POST['fname']));
$pass = $mysqli->real_escape_string(htmlspecialchars($_POST['pass']));
$email = $mysqli->real_escape_string(htmlspecialchars($_POST['email']));
$gender = $mysqli->real_escape_string(htmlspecialchars($_POST['gender']));
$age = $mysqli->real_escape_string(htmlspecialchars($_POST['age']));
$sql = "
INSERT INTO registratie (
fname,
pass,
email,
startdatum,
gender,
age,
ip,
host )
VALUES (
'".$fname."',
'".$pass."',
'".$email."',
NOW(),
'".$gender."',
'".$age."',
'".$_SERVER["REMOTE_ADDR"]."',
'".gethostbyaddr($_SERVER["REMOTE_ADDR"])."'
)";
if(!$result = $mysqli->query($sql)) {
echo ' Uw registratie is niet succesvol.';
} else {
echo ' Uw registratie is succesvol toegevoegd. U kunt nu inloggen met uw gegevens.';
}
?>
Het lijkt wel of hij hier niets van herkent! Als is in firebug kijk dan zijn de $_POST gevuld en kom ik in
de succes event.
Ziet hier iemand iets fout ?

Reageren