[RESOLU] Formulaire html, methode post, code php : variables vides

Eléphanteau du PHP | 21 Messages

15 sept. 2014, 10:28

Bonjour,

J'ai téléchargé un template de site "one page".
J'ai pu me l'approprier jusqu'à une certaine limite je l'avoue, raison pour laquelle je viens vers vous.
Je voudrais envoyer un email grâce à un formulaire html avec une méthode post ; chose à priori simple et pourtant...

D'une part, après divers test, je crois comprendre que le script php destinataire reçoit des variables vides, ou alors que rien n'est transmis. En tout cas les $_POST['name'] (par exemple) sont vides. Y a t-il des choses à faire pour qu'un post fonctionne qui ne serait pas bien effectué dans ce code ?

D'autre part, je suis face à une véritable énigme, créée par l'inconnu. Je m'explique. Il y a à la fin de la balise <form> 2 div qui sont appelées et j'ai l'impression qu'elles s'affichent selon un résultat renvoyé par le code php destinataire du formulaire. Pourtant il n'y a pas de if dans le code html et je ne vois rien de très explicite, en tout cas je ne le comprends pas, dans le code php.

Pourriez-vous m'aider à y voir clair svp ?

Merci d'avance,

Vince

Mon code html :
            <form>
            <div class="row">
                <div class="col-lg-4">
                    <address>
                        <div class="address-row">
                            <div class="address-sign">
                                <i class="icon-map-marker"></i>
                            </div>
                            <div style="address-info">
                                <b>Single Page Responsive Template</b>,<br>
                                Using Twitter Bootstrap 3,<br>
                                EGrappler.com
                            </div>
                        </div>
                    </address>
                    <div class="visible-xs visible-sm">
                        <br class="gap-30" />
                        <hr class="gap-divider" />
                        <br class="gap-30" />
                    </div>
                </div>
                <div class="col-lg-7 col-lg-offset-1">
                    <form method="post" action="send_form_email.php" id="contactform">
                    <div class="form-group">
                        <div class="row">
                            <div class="col-lg-6">
                                <input type="text" class="form-control" id="name" name="name" placeholder="Your Name *"><br
                                    class="gap-15" />
                            </div>
                            <div class="col-lg-6">
                                <input type="text" class="form-control" id="email" name="email" placeholder="Your Email *">
							</div>
                        </div>
                    </div>
                    <div class="form-group">
                        <textarea class="form-control" id="message" name="message" rows="8"></textarea>
                    </div>
					<button id="button-send" class="btn btn-block btn-success" type="submit" form="contactform">
                        Send Message Now
                    </button>
					<div id="success">
                        Your message has been sent successfully!</div>
                    <div id="error">
                        Unable to send your message, please try later.</div>
                    </form>
                </div>
            </div>
            </form>
        </div>
    </div>
 
Mon code php :
<?php 

$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];

// EDIT THE 2 LINES BELOW AS REQUIRED
$send_email_to = "[email protected]";
$email_subject = "Pre-inscription a Pay Fair";
function send_email($name,$email,$email_message)
{
  global $send_email_to;
  global $email_subject;
  $headers = "MIME-Version: 1.0" . "\r\n";
  $headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
  $headers .= "From: ".$email. "\r\n";
  $message = "<strong>Email = </strong>".$email."<br>";
  $message .= "<strong>Name = </strong>".$name."<br>";  
  $message .= "<strong>Message = </strong>".$email_message."<br>";
  @mail($send_email_to, $email_subject, $message,$headers);
  return true;
}

function validate($name,$email,$message)
{
  $return_array = array();
  $return_array['success'] = '1';
  $return_array['name_msg'] = '';
  $return_array['email_msg'] = '';
  $return_array['message_msg'] = '';
  if($email == '')
  {
    $return_array['success'] = '0';
    $return_array['email_msg'] = 'Saisissez votre email svp';
	mail("[email protected]","erreur","Saisissez votre email svp");
  }
  else
  {
    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
    if(!preg_match($email_exp,$email)) {
      $return_array['success'] = '0';
      $return_array['email_msg'] = 'Saisissez un email valide svp';  
	  mail("[email protected]","erreur","Saisissez un email valide svp");
    }
  }
  if($name == '')
  {
    $return_array['success'] = '0';
    $return_array['name_msg'] = 'Saisissez votre nom svp';
	mail("[email protected]","erreur","Saisissez votre nom svp");
  }
  else
  {
    $string_exp = "/^[A-Za-z .'-]+$/";
    if (!preg_match($string_exp, $name)) {
      $return_array['success'] = '0';
      $return_array['name_msg'] = 'Saisissez un nom valide svp';
	  mail("[email protected]","erreur","Saisissez un nom valide svp");
    }
  }
		
  if($message == '')
  {
    $return_array['success'] = '0';
    $return_array['message_msg'] = 'Saisssez un message svp';
	mail("[email protected]","erreur","Saisissez votre message svp");
  }
  else
  {
    if (strlen($message) < 2) {
      $return_array['success'] = '0';
      $return_array['message_msg'] = 'Saisissez un message valide svp';
	  mail("[email protected]","erreur","Saisissez un message valide svp");
    }
  }
  return $return_array;
}






$return_array = validate($name,$email,$message);

if($return_array['success'] == '1')
{
	mail("[email protected]","succes","message");
	send_email($name,$email,$message);
}
header('Content-type: text/json');
echo json_encode($return_array);
die();
?>


Eléphanteau du PHP | 21 Messages

18 sept. 2014, 16:51

Bonjour,

Beaucoup de vue mais pas de réponse...
Manque t-il des éléments à ma requête ?

Merci d'avance pour votre aide,

Vince

Eléphant du PHP | 151 Messages

18 sept. 2014, 20:47

En fait il manque du code ! Du jquery (ou js quelconque qui gère l'ajax) et du css.
Donc ton formulaire ne semble pas pouvoir marcher comme ça...
Je pense qu'il faudrait contacter donc ton inconnu anonyme pour avoir le complètement du code.
Développeur d'applications pour intranets industriels (IHM), DBA Oracle, auto entrepreneur. Je fuis les frameworks car je pense comme Rasmus Lerdorf : "all PHP frameworks suck"...
Je me suis lancé dans la reprise du projet PhpMyNewsletter (GNU GPL), que je vous invite à essayer.

echo ($user=='enregistré?"je t'aide":"je t'aide pas !");

Eléphanteau du PHP | 21 Messages

19 sept. 2014, 09:05

En fait il manque du code ! Du jquery (ou js quelconque qui gère l'ajax) et du css.
Donc ton formulaire ne semble pas pouvoir marcher comme ça...
Je pense qu'il faudrait contacter donc ton inconnu anonyme pour avoir le complètement du code.
Bonjour et merci pour cette réponse,

J'ai plus de code bien sûr, mais je ne voulais pas copier tout ici.

Voici l'adresse de la page en ligne http://vmarce.phpnet.org/payfair/meilleur/

Voici également la totalité du code html :

Code : Tout sélectionner

<!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>PAY FAIR - Venez révolutionner les délais de paiement !</title> <!-- Stylesheets --> <link type="text/css" href="css/bootstrap.css" rel="stylesheet"> <link href='http://fonts.googleapis.com/css?family=Roboto:400,400italic,700,700italic,500italic,500,300italic,300' rel='stylesheet' type='text/css'> <link type="text/css" href="icons/font-awesome/css/font-awesome.css" rel="stylesheet"> <link type="text/css" href="icons/rondo/style.css" rel="stylesheet"> <link href="css/jquery.fancybox.css" rel="stylesheet" type="text/css" /> <link type="text/css" href="css/style.css" rel="stylesheet"> <script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js'></script> </head> <body > <header class="header" id="jump"> <nav class="navbar navbar-default navbar-fixed-top" role="navigation"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-responsive-collapse"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span> </button> <a class="navbar-brand" href="#"> <img src="img/logo.png" alt="" /></a> </div> <div class="collapse navbar-collapse hidden-xs"> <ul class="nav navbar-nav navbar-right"> <li class="active"><a href="#jump0">Accueil</a></li> <li><a href="#jump1">Description</a></li> <li><a href="#jump2">Bénéfices</a></li> <li><a href="#jump3">Pionniers</a></li> <li><a href="#jump4">Pré-inscription</a></li> <li><a href="#jump5">Testimonials</a></li> <li><a href="#jump6">Contact Us</a></li> </ul> </div> <!-- /.navbar-collapse --> <div class="collapse navbar-responsive-collapse"> <ul class="nav navbar-nav"> <li class="active"><a href="#jump0" data-toggle="collapse" data-target=".navbar-responsive-collapse"> Home</a></li> <li><a href="#jump1" data-toggle="collapse" data-target=".navbar-responsive-collapse"> Services</a></li> <li><a href="#jump2" data-toggle="collapse" data-target=".navbar-responsive-collapse"> Portfolio</a></li> <li><a href="#jump3" data-toggle="collapse" data-target=".navbar-responsive-collapse"> Pricing</a></li> <li><a href="#jump4" data-toggle="collapse" data-target=".navbar-responsive-collapse"> Team</a></li> <li><a href="#jump5" data-toggle="collapse" data-target=".navbar-responsive-collapse"> Clients</a></li> <li><a href="#jump6" data-toggle="collapse" data-target=".navbar-responsive-collapse"> Contact</a></li> </ul> </div> <!-- /.navbar-responsive-collapse --> </div> </nav> </header> <div class="jumper" id="jump0"> </div> <div class="section type-1 big splash"> <div class="splash-cover"> </div> <div class="container"> <div class="splash-block"> <div class="centered"> <div class="container"> <div class="section-headlines"> <h1> <font style="font-size: 54.0pt; color: #00b0f0;">PAY</font> <font style="font-size: 54.0pt; color: #f79646;">FAIR</font> </br> <font style="font-size: 27.0pt; color: #00b0f0;">Venez</font> <font style="font-size: 27.0pt; color: #f79646;">révolutionner</font> <font style="font-size: 27.0pt; color: #00b0f0;">les délais de paiement</font> <font style="font-size: 27.0pt; color: #f79646;">!</font> </h1> <p> <b>Agissons ensemble, pour réduire la gestion des encaissements et leurs impacts sur la trésorerie, au strict minimum !</b></p> </div> <a href="#jump2" class="btn btn-outline btn-lg">Our Portfolio </a>&nbsp; <a href="#jump6" class="btn btn-outline btn-lg">Hire Us </a> </div> </div> </div> </div> </div> <div id="jump1" class="jumper"> </div> <div class="section type-2"> <div class="container"> <div class="section-headlines"> <font style="font-size: 27.0pt; color: #00b0f0; font-weight: bold;">Prenez part à </font><font style="font-size: 27.0pt; color: #f79646; font-weight: bold;">une action inédite </font><font style="font-size: 27.0pt; color: #00b0f0; font-weight: bold;">!</font> <div> </br> <b>AGISSONS ENSEMBLE, POUR REDUIRE LA GESTION DES ENCAISSEMENTS ET LEURS IMPACTS SUR LA TRESORERIE, AU STRICT MINIMUM !</b> </br> </br> Une entreprise doit en effet pouvoir concentrer 100% de ses moyens sur son cœur de métier pour croître et innover ! </br> Elle ne doit plus s’épuiser sur les tâches périphériques comme le suivi des délais de paiement.</br> </br> <b>C’est le crédo de PAY FAIR dont l’objectif est de libérer votre temps, votre budget et vos énergies.</b> </br> </br></br> <b>3 LEVIERS SONT MOBILISES</b> pour cela : </br> </br> <ul> <li> La force d’un <b>réseau</b> d’entreprises fiables qui se soutiennent</li> </br> <li> L’application de la <b>loi</b></li> </br> <li> L’envie d’<b>éthique</b> dans la vie économique.</li> </ul> </div> </div> </div> </div> <div id="jump2" class="jumper"> </div> <div class="section type-1" style="padding-bottom: 0"> <div class="container"> <div class="section-headlines"> <font style="font-size: 27.0pt; color: #f79646; font-weight: bold;">Les bénéfices </font><font style="font-size: 27.0pt; color: #00b0f0; font-weight: bold;">PAY </font><font style="font-size: 27.0pt; color: #f79646; font-weight: bold;">FAIR</font> <div> </br> PAY FAIR s’appuie sur <b>une logique incitative positive pour :</b></br> <ul></br> <li><b>Sensibiliser et inciter vos clients à payer dans les temps</b>, voire à améliorer leurs délais de paiement</li> </br> <li><b>Vous donner une image de partenaire de confiance</b> afin de bénéficier de conditions d’achats avantageuses auprès de vos fournisseurs</li> </br> </ul> PAY FAIR rassemble <b>une communauté de partenaires potentiels sensibles à la tenue des délais de paiement</b> : un sésame de confiance entre entreprises pragmatiques et éthiques.</br> </br> PAY FAIR propose <b>une base de connaissances</b> claire pour <b>maîtriser les aspects contractuels</b> de la relation client- fournisseur et notamment le fonctionnement des délais.</br> </br> PAY FAIR en outre donne à ses adhérents <b>de la visibilité en tant qu’entreprises exemplaires</b> (RSE), mais aussi <b>une voix en tant que groupe d’influence</b>.</br> </br> </div> </div> </div> </div> <div id="jump3" class="jumper"> </div> <div class="section type-2"> <div class="container"> <div class="section-headlines"> <font style="font-size: 27.0pt; color: #f79646; font-weight: bold;">Soyez parmi </font><font style="font-size: 27.0pt; color: #00b0f0; font-weight: bold;">les pionniers </font><font style="font-size: 27.0pt; color: #f79646; font-weight: bold;">!</font> <div> </br> Le <b>projet</b> PAY FAIR est en <b>phase de pré-lancement</b>. </br> Nous en profitons pour recruter nos premiers membres et recueillir vos avis.</br> </br> Pour réussir, nous devons dans un premier temps réunir un noyau suffisant d’entreprises. </br> A partir de lui des synergies apparaîtront et des services novateurs pourront être mis en place. </br> [Et demain plus encore !] </br> </br> <b>Nous rejoindre aujourd’hui, c’est soutenir ce projet en disant simplement votre envie que les choses changent. Nous ne vous demandons pas de justifier d’une conduite parfaite !</b> </div> </div> </div> </div> <div id="jump4" class="jumper"> </div> <div class="section type-1 section-contact"> <div class="container"> <div class="section-headlines"> <font style="font-size: 27.0pt; color: #00b0f0; font-weight: bold;">Pré-</font><font style="font-size: 27.0pt; color: #f79646; font-weight: bold;">inscrivez </font><font style="font-size: 27.0pt; color: #00b0f0; font-weight: bold;">vous </font><font style="font-size: 27.0pt; color: #f79646; font-weight: bold;">!</font> <div> </br> Merci pour votre confiance et votre engagement !</br> </br> <b>Nous revenons vers vous au plus vite, avec des conditions préférentielles.</b> </div> </div> </div> </div> <div id="jump5" class="jumper"> </div> <div class="section type-2"> <div class="container"> <div class="section-headlines"> <font style="font-size: 27.0pt; color: #f79646; font-weight: bold;">Et demain </font><font style="font-size: 27.0pt; color: #00b0f0; font-weight: bold;">plus encore </font><font style="font-size: 27.0pt; color: #f79646; font-weight: bold;">!</font> <div> </br> Nos outils pour accompagner ce changement sont déjà là. Ils ont été imaginés en collaboration avec des entrepreneurs « amis ». </br> Nous continuerons à les faire évoluer en tenant compte de vos besoins. </br> Ils vous seront proposés dès lors que la communauté sera suffisamment étoffée.</br> </div> </div> </div> </div> <div id="jump6" class="jumper"> </div> <div class="section type-1 section-contact"> <div class="container"> <div class="section-headlines"> <h4> Contact Us</h4> <h2> Let's have a coffee</h2> <a href="#" class="toggler" rel="nofollow">Cliquez sur ce premier lien</a>. <div class="toggle" style="display:none;">Ce texte apparaît grâce à un script javascript écrit pour JQuery et utilise la fonction <code>toggle()</code>.</div> </br> <a href="#" class="toggler" rel="nofollow">Maintenant, cliquez sur ce deuxième lien</a>. <div class="toggle" style="display:none;">Ce texte appartient au 2ème lien.</div> </div> <form> <div class="row"> <div class="col-lg-4"> <address> <div class="address-row"> <div class="address-sign"> <i class="icon-map-marker"></i> </div> <div style="address-info"> <b>Single Page Responsive Template</b>,<br> Using Twitter Bootstrap 3,<br> EGrappler.com </div> </div> </address> <div class="visible-xs visible-sm"> <br class="gap-30" /> <hr class="gap-divider" /> <br class="gap-30" /> </div> </div> <div class="col-lg-7 col-lg-offset-1"> <form method="post" action="send_form_email.php" id="contactform"> <div class="form-group"> <div class="row"> <div class="col-lg-6"> <input type="text" class="form-control" id="name" name="name" placeholder="Your Name *"><br class="gap-15" /> </div> <div class="col-lg-6"> <input type="text" class="form-control" id="email" name="email" placeholder="Your Email *"> </div> </div> </div> <div class="form-group"> <textarea class="form-control" id="message" name="message" rows="8"></textarea> </div> <button id="button-send" class="btn btn-block btn-success" type="submit" form="contactform"> Send Message Now </button> <div id="success"> Your message has been sent successfully!</div> <div id="error"> Unable to send your message, please try later.</div> </form> </div> </div> </form> </div> </div> <footer class="footer"> <div class="container"> <div class="row"> <div class="col-lg-12"> Meilleur - A Free Responsive Bootstrap 3 Template &copy; 2014 - <a href="http://www.egrappler.com"> EGrappler.com</a> </div> </div> </div> </footer> <!--Scripts--> <script type="text/javascript" src="js/jquery-1.10.2.min.js"></script> <script type="text/javascript" src="js/bootstrap.min.js"></script> <script type="text/javascript" src="js/jquery.smooth-scroll.min.js"></script> <script type="text/javascript" src="js/jquery.mixitup.min.js"></script> <script src="js/jquery.easing.1.3.js" type="text/javascript"></script> <script src="js/modernizr.js" type="text/javascript"></script> <script src="js/jquery.fancybox.pack.js" type="text/javascript"></script> <script type="text/javascript" src="js/custom.js"></script> <script type="text/javascript" src="js/toggle.js"></script> </body> </html>

Eléphant du PHP | 151 Messages

19 sept. 2014, 09:35

Alors...

Tu peux supprimer la ligne :
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jq ... '></script>
car tu inclus déjà une version récente jquery en bas de page (js en bas, css en haut)
Ou alors tu mets <script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jq ... '></script> en bas à la place de <script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
Ensuite, le formulaire :
- chaque champ est identifié par un id... C'est bien !
Le problème est que quand on regarde le header de l'appel ajax :

Code : Tout sélectionner

POST http://vmarce.phpnet.org/payfair/meilleur/send_form_email.php HTTP/1.1 Host: vmarce.phpnet.org Proxy-Connection: keep-alive Content-Length: 0 Accept: */* Origin: http://vmarce.phpnet.org X-Requested-With: XMLHttpRequest User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.68 Safari/537.17 Referer: http://vmarce.phpnet.org/payfair/meilleur/ Accept-Encoding: gzip,deflate,sdch Accept-Language: en-US,en;q=0.8,fr;q=0.6 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
On ne voit aucune variable dans l'envoi !

Et la réponse :

Code : Tout sélectionner

{"success":"0","name_msg":"Saisissez votre nom svp","email_msg":"Saisissez votre email svp","message_msg":"Saisssez un message svp"}
Te dis bien que rien n'est passé et t'invite à saisir les champs.

En gros, ton formulaire n'envoie rien !

En cherchant dans les js, il y a :

Code : Tout sélectionner

//setup email here $('#button-send').click(function (event) { $('#button-send').html('Sending E-Mail...'); event.preventDefault(); $.ajax({ type: 'POST', url: 'send_form_email.php', data: $('#contact_form').serialize(), success: function (html) { if (html.success == '1') { $('#button-send').html('Send E-Mail'); $('#success').show(); } else { $('#button-send').html('Send E-Mail'); $('#error').show(); } }, error: function () { $('#button-send').html('Send E-Mail'); $('#error').show(); } }); });
et quand on regarde le code source de ta page web, on a un formulaire qui s'appelle contactform et non contact_form :non:

Je te laisse poster ici la conclusion ? J'ai fait tout le travail, là c'est facile maintenant :wink: :wink: :mrgreen: :mrgreen:
Développeur d'applications pour intranets industriels (IHM), DBA Oracle, auto entrepreneur. Je fuis les frameworks car je pense comme Rasmus Lerdorf : "all PHP frameworks suck"...
Je me suis lancé dans la reprise du projet PhpMyNewsletter (GNU GPL), que je vous invite à essayer.

echo ($user=='enregistré?"je t'aide":"je t'aide pas !");

Eléphanteau du PHP | 21 Messages

19 sept. 2014, 10:26

Merci BEAUCOUP pour cette réponse détaillée Arnaud !

J'ai supprimé le premier appel au javascript redondant. Je m'en doutais mais comme ça ne bloquais pas et n'était pas ma priorité. Enfin bref tu confirmes et ça c'est fait.

En ce qui concerne la différence de référence au formulaire, MERCI, car j'étais allé dans les js mais ne sachant pas quoi chercher j'en suis sorti bredouille.
J'ai donc renommé le formulaire et mis à jour. Mais, même échec d'envoi.
J'ai alors renommé le formulaire tel qu'initialement et modifié le script js. Mais pareil.

J'ai pris le temps de vérifier. Peut-être l'ai-je mal fait. Peut-être aussi ai-je manqué une modification à faire d'après ta première réponse ?

Merci,

Vince

Eléphant du PHP | 151 Messages

19 sept. 2014, 10:34

Non, ça a l'air correct.
Dans le js, après

Code : Tout sélectionner

if (html.success == '1') { $('#button-send').html('Send E-Mail');
Tu vas mettre alert(data); et dire quand ok
Développeur d'applications pour intranets industriels (IHM), DBA Oracle, auto entrepreneur. Je fuis les frameworks car je pense comme Rasmus Lerdorf : "all PHP frameworks suck"...
Je me suis lancé dans la reprise du projet PhpMyNewsletter (GNU GPL), que je vous invite à essayer.

echo ($user=='enregistré?"je t'aide":"je t'aide pas !");

Eléphant du PHP | 151 Messages

19 sept. 2014, 10:58

Me suis trompé,

vite fait mets ça à la place de ta fonction :

Code : Tout sélectionner

$('#button-send').click(function (event) { $('#button-send').html('Sending E-Mail...'); e.preventDefault(); var $this = $(this); var name = $('#name').val(); var email = $('#email').val(); var message = $('#message').val(); if(name === '' || email === '') { alert('Les champs doivent êtres remplis'); } else { $.ajax({ url: $this.attr('action'), type: $this.attr('method'), data: $this.serialize(), dataType: 'json', // JSON if (html.success == '1') { $('#button-send').html('Mail envoyé'); $('#success').show(); } else { $('#button-send').html('Mail en erreur'); $('#error').show(); } }); } }); });
Développeur d'applications pour intranets industriels (IHM), DBA Oracle, auto entrepreneur. Je fuis les frameworks car je pense comme Rasmus Lerdorf : "all PHP frameworks suck"...
Je me suis lancé dans la reprise du projet PhpMyNewsletter (GNU GPL), que je vous invite à essayer.

echo ($user=='enregistré?"je t'aide":"je t'aide pas !");

Eléphanteau du PHP | 21 Messages

19 sept. 2014, 11:10

Merci,
C'est fait j'ai remplacé la fonction.
J'ai fait un test. En apparence il ne se passe rien. En tout cas ni message du succès ou d'échec et je ne reçois rien dans ma boite email.

Vince

Eléphant du PHP | 151 Messages

19 sept. 2014, 11:33

:evil: :evil: :evil:
Ca vient d'où ça : :?: :?: :?: :non: :non:

Code : Tout sélectionner

<button id="button-send" class="btn btn-block btn-success" type="submit" form="contact_form">
Tu vas le changer par

Code : Tout sélectionner

<button id="button-send" class="btn btn-block btn-success" type="submit">
Ensuite, il te manque un avant

Code : Tout sélectionner

function scrollTo(elem) { $('body,html').animate({ scrollTop: elem.offset().top }, 500); }
Tu vas donc faire ces mises à jour STP et revenir
Développeur d'applications pour intranets industriels (IHM), DBA Oracle, auto entrepreneur. Je fuis les frameworks car je pense comme Rasmus Lerdorf : "all PHP frameworks suck"...
Je me suis lancé dans la reprise du projet PhpMyNewsletter (GNU GPL), que je vous invite à essayer.

echo ($user=='enregistré?"je t'aide":"je t'aide pas !");

Eléphant du PHP | 151 Messages

19 sept. 2014, 11:45

Fatigué fin de semaine agitée désolé :
à la place de

Code : Tout sélectionner

$('#button-send').click(function (event) {
tu mets STP :

Code : Tout sélectionner

$('#contact_form').on('submit', function(e) {
ainsi que supprimer le second </form>
Développeur d'applications pour intranets industriels (IHM), DBA Oracle, auto entrepreneur. Je fuis les frameworks car je pense comme Rasmus Lerdorf : "all PHP frameworks suck"...
Je me suis lancé dans la reprise du projet PhpMyNewsletter (GNU GPL), que je vous invite à essayer.

echo ($user=='enregistré?"je t'aide":"je t'aide pas !");

Eléphanteau du PHP | 21 Messages

19 sept. 2014, 12:06

J'ai ajouté form dans la balise button parce que d'après la norme html 5 c'est possible.
Je l'ai surtout fait car, une fois que ce formulaire fonctionnera, j'envisage d'avoir 2 formulaires de ce type pour m'envoyer des emails. Il ne faudra donc pas qu'il y ait confusion entre les button et les form.
Enfin j'ai effectué la modif et du coup il se passe quelque chose avec ton script, c'est à dire que ma page revient au niveau de l'accueil après avoir cliqué sur le bouton. En revanche je ne reçois pas d'email.

Concernant le js. Je n'arrive pas à voir à quoi correspond ce }]; que tu veux me faire ajouter. J'en vois plutôt un en trop. Non ?
Enfin de toute façon j'ai fait plusieurs tests et ça n'envoie rien pour autant...

Vince

Eléphant du PHP | 151 Messages

19 sept. 2014, 12:15

En fait, quand tu ouvrais ton form, ça ne marchait pas car il n'y avait aucune valeur à envoyer.
Le }); que je t'ai fait mettre c'est pour fermer la fonction qui commence en ligne 1 de custom.js.
Pour être propre mets le sans tabulation.

Ensuite, pas évident de donner du code quand on développe à distance et qu'on écrit à l'arrache :
html.success n'est pas défini, normal, j'ai omis la fonction qui recevra html.*
Donc :

Code : Tout sélectionner

$.ajax({ url: $this.attr('action'), type: $this.attr('method'), data: $this.serialize(), dataType: 'json', // JSON success: function(html) { // récup du json/php alert(html); // affiche le if (html.success == '1') { $('#button-send').html('Mail envoyé'); $('#success').show(); }else { $('#button-send').html('Mail en erreur'); $('#error').show(); } } });
Développeur d'applications pour intranets industriels (IHM), DBA Oracle, auto entrepreneur. Je fuis les frameworks car je pense comme Rasmus Lerdorf : "all PHP frameworks suck"...
Je me suis lancé dans la reprise du projet PhpMyNewsletter (GNU GPL), que je vous invite à essayer.

echo ($user=='enregistré?"je t'aide":"je t'aide pas !");

Eléphanteau du PHP | 21 Messages

19 sept. 2014, 12:21

Fatigué fin de semaine agitée désolé :
à la place de

Code : Tout sélectionner

$('#button-send').click(function (event) {
tu mets STP :

Code : Tout sélectionner

$('#contact_form').on('submit', function(e) {
ainsi que supprimer le second </form>
Je me demandais aussi où était passé le nom du formulaire :-)

Après essaie, il semble se passer quelque chose, mais je ne reçois toujours rien (j'ai modifié ajax...).

J'aurais mis le }]; à la toute fin du code js pour former l'ensemble de fonctions. Mais je te suis.

Vince

Eléphanteau du PHP | 21 Messages

19 sept. 2014, 12:28

Je peux te transmettre les sources si tu veux.

Vince