Contourner la redirection PHP
Salut à tous,
Je viens de créer un formulaire de contact très simple en PHP et j'aimerai souscrire ce formulaire en Ajax sans l'actualisation de la page, le probleme c'est que la partie PHP contient 2 redirections, mon code Ajax marche bien mais je veux savoir s'il y a un truck pour contourner les redirections et rester sur la meme page.
voici mes 2 codes:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| <?php
$errors = [];
$nom = htmlspecialchars($_POST['nom']);
$email = htmlspecialchars($_POST['email']);
$message = htmlspecialchars($_POST['message']);
if(!array_key_exists('nom', $_POST) || $_POST['nom'] == ''){
$errors['nom'] = "Vous n'avez pas renseigné votre nom !";
}
if(!array_key_exists('email', $_POST) || $_POST['email'] == '' || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
$errors['email'] = "Vous n'avez pas renseigné un email valide !";
}
if(!array_key_exists('message', $_POST) || $_POST['message'] == ''){
$errors['message'] = "Vous n'avez pas renseigné votre message !";
}
session_start();
if(!empty($errors)){
$_SESSION['errors'] = $errors;
header('Location: ../contact.php#contactform');
} else {
$_SESSION['success'] = 1;
$to = "exemple@exemple.org";
$headers ="MIME-Version: 1.0\r\n";
$headers ='From:'.$nom.'<'.$email.'>'."\r\n";
$headers.='Content-Type:text/html; charset="UTF-8"'."\r\n";
$headers.='Content-Transfert-Encoding: 8bit';
'Reply-To: $email' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, "Form contact", $message, $headers);
header('Location: ../contact.php#contactform');
}
die();
?> |
et le code Javascript:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
$("#contactform").submit(function(){
var action = $(this).attr('action');
var nom = $(".nom").val();
var email = $(".email").val();
var message = $(".message").val();
$('button[type="submit"]').hide().after('<img src="imgs/zZTBdeLybMk/ajaxl.gif" class="fleft inline ajaxll">');
$('button[type="reset"]').hide();
$.post(action,{
nom:nom,
email:email,
message:message
},function(){
$(".message").html(data);
$('.ajaxll').fadeOut();
$('button[type="submit"]').fadeIn();
$('button[type="reset"]').fadeIn();
});
return false;
}); |