Bonjour à tous.
j'ai un petit problème concernant mon formulaire.
Je m'explique : j'ai créer un formulaire en HTML simple, avec un traitemement en php qui insert les données dans une base.
A ce formulaire j'utilise du jquery pour vérifier si les champs sont vides et si la syntaxe est bonne.
Le problème qui ce pose est que lorsque les champs du formulaire sont vides et que j'appuie sur mon submit, les alerts s'affichent,
mais lorsque je rempli un seul champs, tout s'insère dans la base de données alors que des champs restent vide.
J'ai regarder sur plein de forum sans trouver mon erreur.
voici les codes:
Formulaire
[code]
<form id="register-form" class="form" action="../controller/Inscription.php" method="POST">
<legend> INSCRIPTION </legend>
<hr>
<div class="body">
<input name="id" type="hidden">
<label>NOM</label>
<input name="nom" id="nom" type="text">
<span class="error-message"></span>
<label>PRENOM</label>
<input name="prenom" id="prenom" type="text">
<span class="error-message"></span>
<label>DATE NAISSANCE</label>
<input name="date_naissance" id="naissance" type="text">
<span class="error-message"></span>
<label>CODE POSTALE</label>
<input name="code" id="code" type="text">
<span class="error-message"></span>
<label>ADRESSE</label>
<input name="adresse" id="adresse" type="text">
<span class="error-message"></span>
<label>VILLE</label>
<input name="ville" id="ville" type="text">
<span class="error-message"></span>
<label>PAYS</label>
<input name="pays" id="pays" type="text">
<span class="error-message"></span>
<label>TELEPHONE</label>
<input name="tel" id="tel" type="text">
<label>EMAIL</label>
<input name="email" id="email" type="text">
<span class="error-message"></span>
<br/>
<label>PASSWORD</label>
<input name="password" id="password" type="password">
<span class="error-message"></span>
</div>
<br/>
<div class="footer">
<button type="submit" id="submit" name="submit" class="btn btn-success">Enregistrer</button>
</div>
</form>
[/code]
Mon JQuery
[code]jQuery(function($){
$.datepicker.setDefaults( $.datepicker.regional[ "fr" ] );
$('#naissance').datepicker({
dateFormat:'yy-mm-dd',
yearRange: '1940 : 2016',
changeYear:true, //affiche un select d'année
firstDay:1, //affiche la date d'aujourd'hui
//minDate: 0
showOn: "button",
buttonImage: "../images/calendar.png",
buttonImageOnly: true
});
$('#dateDebut').datepicker({
dateFormat:'yy-mm-dd',
firstDay:1,
minDate: 0
});
$('#dateFin').datepicker({
dateFormat:'yy-mm-dd',
firstDay:1,
minDate: 1
});
});
$(function(){
$("#submit").click(function(){
valid = false; // champs bien rempli ou pas
/**
VERIFICATION DU CODE POSTAL
*/
if($("#code").val()==""){
$("#code").next(".error-message").fadeIn().text("Veuillez entrez votre code postale");
valid = false;
}else{
$("#code").next(".error-message").fadeout();
}
/**
VERIFICATION DE L'ADRESSE
*/
if($("#adresse").val()==""){
$("#adresse").next(".error-message").fadeIn().text("Veuillez entrez votre adresse");
valid = false;
}else{
$("#adresse").next(".error-message").fadeout();
}
/**
VERIFICATION DE L'ADRESSE
*/
if($("#ville").val()==""){
$("#ville").next(".error-message").fadeIn().text("Veuillez entrez votre adresse");
valid = false;
}else{
$("#ville").next(".error-message").fadeout();
}
/**
/**
VERIFICATION DE L'EMAIL
*/
if($("#email").val()==""){
$("#email").next(".error-message").fadeIn().text("Veuillez entrez un email");
valid = false;
}
else if (!$("#email").val().match(/^[a-z0-9.-]+@[a-z0-9.-]+.[a-z]{2,6}$/)){
$("#email").next(".error-message").fadeIn().text("Veuillez entrez un email valide");
valid =false;
}
else{
$("#email").next(".error-message").fadeOut();
}
/**
VERIFICATION DU MOT DE PASSE
*/
if($("#password").val()==""){
$("#password").next(".error-message").fadeIn().text("Veuillez entrez un password");
valid = false;
}else{
$("#password").next(".error-message").fadeout();
}
return valid;
});
});
[/code]
et mes traitements PHP
Modele :
[code]function addMembres(membre $membre){
$connexion = Connexion::getInstance();
$sql = $connexion->prepare("INSERT INTO ps_membre(nom_membre,prenom_membre,date_naissance,cp_membre,adresse_membre,ville_membre,pays_membre,tel_membre,email_membre,password) VALUES(?,?,?,?,?,?,?,?,?,?)");
{
$params = $membre->getReqParams();
$n=1; // Nombre de paramètres
foreach($params as $v)
{
$sql->bindValue($n,$v,PDO::PARAM_STR);
echo $v; echo"<br>";
$n++;
}
}
$res=$sql->execute();
$result=$sql->fetchAll();
return $result;
}[/code]
et mon controlleur qui déclenche l'action de l'insertion
[code]
class Inscription
{
public static function ajouterUnMembre(membre $membre)
{
addMembres($membre);
}//end class
}
$password = $_POST['password'];
$hash= crypt($password);
$membre = new membre( "",
$_POST['nom'],
$_POST['prenom'],
$_POST['date_naissance'],
$_POST['code'],
$_POST['adresse'],
$_POST['ville'],
$_POST['pays'],
$_POST['tel'],
$_POST['email'],
$hash);
die;
Inscription::ajouterUnMembre($membre);
header('Location:../index.php');
[/code]
j'espère que vos trouverez ce qui cloche car je ne trouve pas