Page 1 sur 1

Souci validation formulaire PHP (avec Ajax)

Posté : 01 mars 2017, 17:48
par Terias
Salut à tous,

j'espère poster au bon endroit (je ne suis pas certain que mon souci vienne du PHP).

Voila, pour éviter un rafraîchissement de la page suite à la validation du formulaire, j'ai pris parti d'utiliser Ajax.
Dans le debuggeur, je vois bien que les infos passent bien, l'appel ajax est bien en "success".

Mon problème, c'est que le mail ne part pas.
A noter que si j’enlève la partie Ajax, le mail est bien envoyé.

Si quelqu'un a une idée, je suis preneur.

Merci à tous ;)

Re: Souci validation formulaire PHP (avec Ajax)

Posté : 01 mars 2017, 18:58
par @rthur
Bonjour,
Dans le debuggeur, je vois bien que les infos passent bien, l'appel ajax est bien en "success".
Que répond le serveur distant ?
Si c'est un script PHP qui est appelé et doit envoyer le mail, tu peux faire un var_dump() des variables attendues et tu verra le résultat dans ta console de dev du navigateur dans l'onglet réseau en réponse du serveur.

Re: Souci validation formulaire PHP (avec Ajax)

Posté : 01 mars 2017, 20:15
par Terias
Que répond le serveur distant ?
Si c'est un script PHP qui est appelé et doit envoyer le mail, tu peux faire un var_dump() des variables attendues et tu verra le résultat dans ta console de dev du navigateur dans l'onglet réseau en réponse du serveur.
Désolé, étant intégrateur de métier, le PHP n'est pas la techno que je gère le mieux.

Je me permets de copier mon code, ce qui te donnera peut-être une idée plus précise du problème.

HTML:
<form enctype="multipart/form-data" method="post" action="process.php" class="form" id="form">
     <input type="text" name="name" id="name" class="contact_name_txt" placeholder="Nom..." required />
     <input type="email" name="mail" id="mail" placeholder="Mail..." required />
     <textarea name="message" id="message"  placeholder="Message..." cols="30" rows="10" required ></textarea>
     <input type="submit" value="C'est parti !" name="submit" id="submit" class="btn btn-greyblue contact-btn" />
</form>
Le PHP:
<?php
	if(isset($_POST['submit'])) {
		$destinataire = "[email protected]";
		$nom = trim($_POST['name']);
		$message = trim($_POST['message']);
		$expediteur = $_POST['mail'];
		$sujet = '[RA] > Nouveau message (' . $expediteur . ')'   ;
		var_dump($nom);
		var_dump($message);
		var_dump($expediteur);
		$entetes  = 'MIME-Version: 1.0' . "\r\n";
		$entetes .= 'Content-type: text/html; charset= "utf-8"' . "\r\n";
		$entetes .= 'From: ' . $nom . ' <' . $expediteur .'>' . "\n";
		@mail($destinataire,$sujet, $message, $entetes);
		$reponse = true;
		} else {
			$reponse = false;
		}
	echo json_encode(['reponse' => $reponse]);
?>
Le JS (la partie ajax) :
$(document).ready(function() {
    $('#form').on('submit', function(e) {
        e.preventDefault();
        var $this = $(this);
        console.log($this.serialize());
		$.ajax({
			url: $this.attr('action'),
			type: $this.attr('method'),
			data: $this.serialize(),
			dataType: 'json',
			success: function(json) {
				if(json.reponse) {
					send_success();
					eraseForm();
				} else {
					send_error();
				}
			}
		});
    });
});
Je ne sais pas si j'ai utilisé le var_dump de la bonne façon, car je ne trouve rien dans la console (ou alors je ne sais pas chercher)

Merci de ton aide.

Re: Souci validation formulaire PHP (avec Ajax)

Posté : 02 mars 2017, 01:04
par Terias
J'ai finalement réglé le souci.
Le problème venait d'ajax, pas de PHP.

Merci de ton aide.