Bonjour,
J'aimerais savoir votre avis sur la meilleur méthode a utilisé pour les envoies de formulaire en ajax avec retour d'erreur. J'ai fais le tour de la question et je suis toujours en interrogation...
Sur mon site, j'ai plusieurs formulaires ressemblant a celui ci :
<form id="forgotPwd" method="get" onSubmit="return false;">
<fieldset class="plain">
<legend><span>Changer votre mot de passe</span></legend>
<div class="row">
<label for="email" class="required">Votre courriel*</label>
<input type="text" name="email" id="email" placeholder="exemple@site.com" />
</div><br> <div><br> <input type="submit" value="Envoyer" />
</div> <br> </fieldset>
</form>
Avec du jquery comme suit :
<script type="text/javascript">
$(function() {
$('form#forgotPwd').on('submit',function(e) {
var d = $(this).serialize();
$.ajax({
url: "modules/users/handles/forgotPwd.php",
dataType: 'json',
type: "GET",
data: d,
success: function(data, status, xhr) {
if(data.error) {
alert(data.error.message);
} else {
alert('Success message');
}
},
error: function (request, status, error) {
alert(request.responseText);
}
});
});
});
</script>
Je m'interroge a savoir pour le coté PHP, qu'elle serait la meilleur méthode a utilisé? Voici les 2 façons et dites moi vous, vous feriez quoi?
Version 1
header('Content-Type: application/json');
try {
if(isset($_GET['email']) && !empty($_GET['email'])) {
if( filter_var($_GET['email'], FILTER_VALIDATE_EMAIL) ) {
echo json_encode(array('results' => 'ok'));
} else throw new Exception('Address courriel invalide',2);
} else throw new Exception('Address courriel vide',1);
} catch(Exception $e) {
echo json_encode(array('error' => array('message' => $e->getMessage(),
'code' => $e->getCode() ) ));
}
Version 2:
public function throwJsonException($msg,$code) {
echo json_encode(array('error'=> array('code' => $code,
'message' => $msg ));
}
if(isset($_GET['email']) && !empty($_GET['email'])) {
if( filter_var($_GET['email'], FILTER_VALIDATE_EMAIL) ) {
echo json_encode(array('results' => 'ok'));
} else throwJsonException('Address courriel invalide',2);
} else throwJsonException('Address courriel vide',1);
Merci de vos avis, vos suggestions.