heuuuu j'ai pas trop pigé mais merci...
C'est justement ce que je cherche à faire!
Si j'avais la possibilité de mettre des echo autre que echojson dans mon php tout est réglé!
Mon code js:
Code : Tout sélectionner
$(document).ready(function() {
$('#hide').removeClass('nojs').addClass('hasjs');
var $form = $('#monForm');
$('#envoyer').on('click', function() {
$form.trigger('submit');
return false;
});
$form.on('submit', function() {
var nom = $('#nom').val();
var email = $('#email').val();
var message = $('#message').val();
var spam =$('#spam').val();
$.ajax({
url: $(this).attr('action'),
type: $(this).attr('method'),
data: $(this).serialize(),
dataType: 'json',
success: function(json) {
if(json.valide == false){
if (json.errorspam == true){
$('#success').html("Test spam failed");
$('#errormessage').html("");
$('#erroremail').html("");
$('#errornom').html("");
}
if (json.erreurnom == true){
$('#errornom').html("erreur nom");
$('#nom').css({"background-color": "yellow"});
$('#success').html("");
}else{
$('#errornom').html("");
}
if (json.erreuremail == true){
$('#erroremail').html("erreur email");
$('#success').html("");
}else{
$('#erroremail').html("");
}
if (json.emailinvalide == true){
$('#erroremail').html("email invalide");
$('#success').html("");
}else if(json.erreuremail == true){
$('#erroremail').html("erreur email");
$('#success').html("");
}else{
$('#erroremail').html("");
}
if (json.erreurmessage == true){
$('#errormessage').html("erreur message");
$('#success').html("");
}else{
$('#errormessage').html("");
}
}else{
$('#success').html("succes!");
$('#errormessage').html("");
$('#erroremail').html("");
$('#errornom').html("");
}
}
});
return false;
});
});
C'est plus facile pour en parler.
Pour le php, je l'ai mis plus haut mais je vous le remets ici:
<?php
$n = array();
if (!empty($_POST))
{
$valid = true;
if (!empty($_POST['spam']) && !($_POST['spam'] == '4' || $_POST['spam'] == 'four'))
{
$valid = false;
$erreur = 'erreur spam';
$n['errorspam'] = true;
$n['valide'] = $valid;
echo json_encode($n);
exit();
}
if ( (isset($_POST['nom'])) && (strlen(trim($_POST['nom'])) > 0) )
{
$nom = stripslashes(strip_tags($_POST['nom']));
}
else
{
$valid = false;
$erreur = 'Erreur nom';
$n['erreurnom'] = true;
$nom= '';
}
if ( (isset($_POST['email'])) && (strlen(trim($_POST['email'])) > 0) )
{
if (preg_match('/^[a-z0-9\-_.]+@[a-z0-9\-_.]+\.[a-z]{2,3}$/i', $_POST['email']))
{
$email = stripslashes(strip_tags($_POST['email']));
}
else
{
$valid = false;
$erreur = 'Votre email n\'est pas valide';
$n['erreuremail'] = false;
$n['emailinvalide'] = true;
$email='';
}
}
else
{
$valid = false;
$erreur = 'Erreur email';
$n['emailinvalide'] = false;
$n['erreuremail'] = true;
$email='';
}
if ( (isset($_POST['message'])) && (strlen(trim($_POST['message'])) > 0) )
{
$message = stripslashes(strip_tags($_POST['message']));
}
else
{
$valid = false;
$erreur = 'Erreur message';
$n['erreurmessage'] = true;
$message = '';
}
}
else
{
$valid = false;
}
$n['valide'] = $valid;
echo json_encode($n);
if ($valid = true)
{
$destinataire = "[email protected]";
$contenu = "Nom de l'expéditeur : ".$nom."\n";
$contenu .= $message."\n";
$headers = 'From:'.$nom.'<'.$email."> \n";
if ( (empty($nom)) && (empty($email)) && (preg_match('/^[a-z0-9\-_.]+@[a-z0-9\-_.]+\.[a-z]{2,3}$/i', $_POST['email'])) && (empty($message)) )
{
'echec :( <br /><a href="contact.html">Retour au formulaire</a>';
}
// ENCAPSULATION DES DONNEES
else
{
mail($destinataire,$objet,utf8_decode($contenu),$headers);
'Formulaire envoyé';
}
}
?>
Voilà où j'en suis...
Comme je l'ai dit j'ai un "echo json_encode($n);" avec dedans toute les valeurs true-false dont j'ai besoin pour mon ajax dans mon jquery.
MON problème: c'est que si je fais un echo d'autre chose mon jquery est TOTALEMENT bloqué: il n'y a pas de json! (json n'est pas renvoyé)
Pourquoi?
heuuuu j'ai pas trop pigé mais merci...
C'est justement ce que je cherche à faire!
Si j'avais la possibilité de mettre des echo autre que echojson dans mon php tout est réglé!
Mon code js:
[code]$(document).ready(function() {
$('#hide').removeClass('nojs').addClass('hasjs');
var $form = $('#monForm');
$('#envoyer').on('click', function() {
$form.trigger('submit');
return false;
});
$form.on('submit', function() {
var nom = $('#nom').val();
var email = $('#email').val();
var message = $('#message').val();
var spam =$('#spam').val();
$.ajax({
url: $(this).attr('action'),
type: $(this).attr('method'),
data: $(this).serialize(),
dataType: 'json',
success: function(json) {
if(json.valide == false){
if (json.errorspam == true){
$('#success').html("Test spam failed");
$('#errormessage').html("");
$('#erroremail').html("");
$('#errornom').html("");
}
if (json.erreurnom == true){
$('#errornom').html("erreur nom");
$('#nom').css({"background-color": "yellow"});
$('#success').html("");
}else{
$('#errornom').html("");
}
if (json.erreuremail == true){
$('#erroremail').html("erreur email");
$('#success').html("");
}else{
$('#erroremail').html("");
}
if (json.emailinvalide == true){
$('#erroremail').html("email invalide");
$('#success').html("");
}else if(json.erreuremail == true){
$('#erroremail').html("erreur email");
$('#success').html("");
}else{
$('#erroremail').html("");
}
if (json.erreurmessage == true){
$('#errormessage').html("erreur message");
$('#success').html("");
}else{
$('#errormessage').html("");
}
}else{
$('#success').html("succes!");
$('#errormessage').html("");
$('#erroremail').html("");
$('#errornom').html("");
}
}
});
return false;
});
});[/code]
C'est plus facile pour en parler.
Pour le php, je l'ai mis plus haut mais je vous le remets ici:
[php]<?php
$n = array();
if (!empty($_POST))
{
$valid = true;
if (!empty($_POST['spam']) && !($_POST['spam'] == '4' || $_POST['spam'] == 'four'))
{
$valid = false;
$erreur = 'erreur spam';
$n['errorspam'] = true;
$n['valide'] = $valid;
echo json_encode($n);
exit();
}
if ( (isset($_POST['nom'])) && (strlen(trim($_POST['nom'])) > 0) )
{
$nom = stripslashes(strip_tags($_POST['nom']));
}
else
{
$valid = false;
$erreur = 'Erreur nom';
$n['erreurnom'] = true;
$nom= '';
}
if ( (isset($_POST['email'])) && (strlen(trim($_POST['email'])) > 0) )
{
if (preg_match('/^[a-z0-9\-_.]+@[a-z0-9\-_.]+\.[a-z]{2,3}$/i', $_POST['email']))
{
$email = stripslashes(strip_tags($_POST['email']));
}
else
{
$valid = false;
$erreur = 'Votre email n\'est pas valide';
$n['erreuremail'] = false;
$n['emailinvalide'] = true;
$email='';
}
}
else
{
$valid = false;
$erreur = 'Erreur email';
$n['emailinvalide'] = false;
$n['erreuremail'] = true;
$email='';
}
if ( (isset($_POST['message'])) && (strlen(trim($_POST['message'])) > 0) )
{
$message = stripslashes(strip_tags($_POST['message']));
}
else
{
$valid = false;
$erreur = 'Erreur message';
$n['erreurmessage'] = true;
$message = '';
}
}
else
{
$valid = false;
}
$n['valide'] = $valid;
echo json_encode($n);
if ($valid = true)
{
$destinataire = "
[email protected]";
$contenu = "Nom de l'expéditeur : ".$nom."\n";
$contenu .= $message."\n";
$headers = 'From:'.$nom.'<'.$email."> \n";
if ( (empty($nom)) && (empty($email)) && (preg_match('/^[a-z0-9\-_.]+@[a-z0-9\-_.]+\.[a-z]{2,3}$/i', $_POST['email'])) && (empty($message)) )
{
'echec :( <br /><a href="contact.html">Retour au formulaire</a>';
}
// ENCAPSULATION DES DONNEES
else
{
mail($destinataire,$objet,utf8_decode($contenu),$headers);
'Formulaire envoyé';
}
}
?>
[/php]
Voilà où j'en suis...
Comme je l'ai dit j'ai un "echo json_encode($n);" avec dedans toute les valeurs true-false dont j'ai besoin pour mon ajax dans mon jquery.
MON problème: c'est que si je fais un echo d'autre chose mon jquery est TOTALEMENT bloqué: il n'y a pas de json! (json n'est pas renvoyé)
Pourquoi?