Bonjour,
Je souhaite vérifier qu'une donnée n'existe pas pour un champ de formulaire avant de le valider en utilisant Jquery Validator avec Ajax mais je n'arrive pas à récupérer ma valeur ( .done(function(response) en JS
Merci pour votre aide
Mon fichier de formulaire
Mon JS
Mon fichier formula.php
<?php
if(isset($_POST['reference']))
{
require_once("connexion/connexion.php");
mysqli_select_db($db, $dbname);
$reference = $_POST['reference'];
$query = "SELECT reference FROM plants WHERE reference = '$reference'";
$query_retrived = mysqli_query($db, $query) or die ("Error:".mysqli_error($db));
$rows = mysqli_fetch_assoc($query_retrived);
$result = mysqli_num_rows($query_retrived);
if ($result>0)
{
return true;
}
else
{
return false;
}
mysqli_free_result($query_retrived);
}
Modifié par dudu22 (28 Nov 2023 - 13:09)
Je souhaite vérifier qu'une donnée n'existe pas pour un champ de formulaire avant de le valider en utilisant Jquery Validator avec Ajax mais je n'arrive pas à récupérer ma valeur ( .done(function(response) en JS
Merci pour votre aide
Mon fichier de formulaire
<?php
include("formula.php");
include("core/Views/templates/default.php");
?>
<div id="test">
<div class="container container-center margin">
<div class="card card-default card-body text-center">
<div class="col-sm-6 offset-sm-3 text-center <!--was-validated-->">
<form class="form justify-content-center" method="post" id="plant_Add_Form" name="plant_Add_Form" >
<fieldset>
<legend >Ajout Plante</legend>
<div class="form-group row">
<label for="reference" class="col-sm-4 col-form-label ">Reference</label>
<input class="col-sm-7 col-form-label " type="text" name="reference" id="reference" >
</div>
<button class="btn btn-primary" id="add" name="add">Ajouter</button>
<button type="reset" class="btn btn-primary reset" id="reset" name="reset" >Effacer</button>
</fieldset>
</form>
</div>
</div>
</div>
Mon JS
$.validator.addMethod("REFERENCE_NOT_DUPLICATE", function (value, element) {
return this.optional(element) || validate_reference_not_duplicate( );
},
"Référence déjà utilisée."
);
function validate_reference_not_duplicate() {
var reference_value = $('#reference').val();
var result
$.ajax({
url: "formula.php", // script to validate in server side
type:"POST",
data: {reference: reference_value}//LES DONNEES QUE L'ON ENVOIE AU FORMULAIRE
})
.done(function(response) {
/console.log (response);
result = (response !== true) ? true : false;
})
.fail(function(jqXHR, textStatus, errorThrown) {
if(jqXHR.status == 400)
{
alert("Erreur 400");
}
else
{
alert (jqXHR, textStatus,errorThrown)
}
})
.always(function() {
});//FIN AJAX
return result;
}
$('#plant_Add_Form').validate({
rules: {
reference: {
required: true,
REFERENCE_NOT_DUPLICATE: true
}
},
messages: {
reference: {
required: "Entrez la référence.",
REFERENCE_NOT_DUPLICATE: "Existe déjà",
}
},
submitHandler: function(form) {
form.submit();
}
});
</script>
Mon fichier formula.php
<?php
if(isset($_POST['reference']))
{
require_once("connexion/connexion.php");
mysqli_select_db($db, $dbname);
$reference = $_POST['reference'];
$query = "SELECT reference FROM plants WHERE reference = '$reference'";
$query_retrived = mysqli_query($db, $query) or die ("Error:".mysqli_error($db));
$rows = mysqli_fetch_assoc($query_retrived);
$result = mysqli_num_rows($query_retrived);
if ($result>0)
{
return true;
}
else
{
return false;
}
mysqli_free_result($query_retrived);
}
Modifié par dudu22 (28 Nov 2023 - 13:09)