5

मैं बूटस्ट्रैप और बूटस्ट्रैप सत्यापनकर्ता के साथ एक HTML पृष्ठ बनाने की कोशिश कर रहा हूं।मोडल, सत्यापनकर्ता और ईमेल के साथ बूटस्ट्रैप फॉर्म

मैं क्या करना चाहता हूं: जब उपयोगकर्ता बटन पर क्लिक करता है, तो एक मॉडल एक फॉर्म के साथ दिखाई देता है। सत्यापन के बाद, फ़ॉर्म फ़ील्ड मान के साथ एक ईमेल भेजा। जब मेल सही ढंग से भेजा गया था, तो कुछ अन्य सूचनाओं के साथ एक अन्य मोडल दिखाई देता है

मेरी समस्या: बूटस्ट्रैप सत्यापनकर्ता के साथ मेरी स्क्रिप्ट काम नहीं करती है। जब कोई फ़ील्ड गलती में होता है, तो जब भी त्रुटि प्रकट होती है तो फॉर्म भेजा जाता है। यदि मैं सभी फ़ील्ड को पूरा करता हूं, पृष्ठ रीबूट करता है और कुछ भी काम नहीं करता है।

कृपया, क्या आप मेरी गलती खोजने में मेरी मदद कर सकते हैं?

मेरी एचटीएमएल:

<html lang="fr"> 
<head> 
<meta charset="utf-8"> 
<meta http-equiv="X-UA-Compatible" content="IE=edge"> 
<meta name="viewport" content="width=device-width, initial-scale=1"> 

<title></title> 

<!-- Bootstrap --> 
<link href="css/bootstrap.css" rel="stylesheet"> 
<style type="text/css"> 

</style> 

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
<script type="text/javascript" src="js/bootstrapValidator.js"></script> 

<script language="JavaScript"> 
<!--vérif formulaire--> 

     function verif() { 
      $('#contact') 
      .bootstrapValidator({ 
       live: 'disabled', 
       message: 'Cette valeur est invalide', 
       feedbackIcons: { 
        valid: 'glyphicon glyphicon-ok', 
        invalid: 'glyphicon glyphicon-remove', 
        validating: 'glyphicon glyphicon-refresh' 
       }, 
       fields: { 
        e1: { 
         validators: { 
          notEmpty: { 
           message: 'Votre nom est obligatoire' 
          } 
         } 
        }, 
        e2: { 
         validators: { 
          notEmpty: { 
           message: 'Votre prenom est obligatoire' 
          } 
         } 
        }, 
        e3: { 
         validators: { 
          notEmpty: { 
           message: 'Votre adresse mail est obligatoire' 
          }, 
          /*emailAddress: { 
          message: 'Le format de votre adresse mail n est pas valide' 
          }*/ 
         } 
        }, 
        e4: { 
         validators: { 
          notEmpty: { 
           message: 'Votre numero de telephone est obligatoire' 
          } 
         } 
        }, 
        /*homePhone: { 
         validators: { 
          digits: { 
           message: 'The home phone number is not valid' 
          } 
         } 
        },*/ 
       } 
      }) 
      .on('error.form.bv', function(e) { 
       console.log('error.form.bv'); 

       var $form = $(e.target); 
       console.log($form.data('bootstrapValidator').getInvalidFields()); 

      }) 
      .on('success.form.bv', function(e) { 
       console.log('success.form.bv'); 
       envoimail(); 
      }) 

     } 

     function envoimail() { 
      alert("lancement mail ok"); 
      $.ajax({ 
       type: "POST", 
       url: "process.php", 
       data: $('form.contact').serialize(), 
       success: function(msg){ 
        $("#thanks").html(msg); 
        alert("thanks ok"); 
        $("#myModal").modal('hide'); 
        alert("hide ok"); 
        $("#synthese").modal('show'); 
        alert("show ok"); 
       }, 
       error: function(){ 
        alert("Echec de l envoi du formulaire"); 
       }, 
      }); 
     }; 

    </script> 

</head> 
<body> 
    <div> 
     <button type="button" class="btn btn-primary btn-lg center-block" data-toggle="modal" data-target="#myModal"> 
      Lancer le calcul 
     </button> 
    </div> 

    <div id="thanks"> 
     <p>test</p> 
    </div> 

    <br> 

<!-- Modal 1 --> 
    <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> 
     <div class="modal-dialog modal-lg" role="document"> 
      <div class="modal-content"> 

       <div class="modal-header"> 
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
        <h4 class="modal-title" id="myModalLabel">Quelques informations sur vous :</h4> 
       </div> 

       <div class="modal-body"> 
        <form id="contact" class="form-horizontal contact" name="contact"> 
         <div class="form-group"> 
          <label class="col-lg-4 control-label">Nom</label> 
          <div class="col-lg-6"> 
           <input class="form-control" id="e1" name="e1" type="text" style="text-align:left" /> 
          </div> 
         </div> 

         <div class="form-group"> 
          <label class="col-lg-4 control-label">Prénom</label> 
          <div class="col-lg-6"> 
           <input class="form-control" id="e2" name="e2" type="text" style="text-align:left" /> 
          </div> 
         </div> 

         <div class="form-group"> 
          <label class="col-lg-4 control-label">Fonction</label> 
          <div class="col-lg-6"> 
           <input class="form-control" id="e5" name="e5" type="text" style="text-align:left"/> 
          </div> 
         </div> 

         <div class="form-group"> 
          <label class="col-lg-4 control-label">Email</label> 
          <div class="col-lg-6"> 
           <input class="form-control" id="e3" name="e3" type="text" style="text-align:left" /> 
          </div> 
         </div> 

         <div class="form-group"> 
          <label class="col-lg-4 control-label">Téléphone</label> 
          <div class="col-lg-6"> 
           <input class="form-control" id="e4" name="e4" type="text" style="text-align:left" /> 
          </div> 
         </div> 

         <div class="form-group"> 
          <label class="col-lg-4 control-label">Message</label> 
          <div class="col-lg-6"> 
           <input class="form-control" id="e6" name="e6" type="text" style="text-align:left" /> 
          </div> 
         </div> 

         <div class="form-group"> 
          <div class="col-lg-12"> 
           <button type="submit" id="resultat" class="btn btn-primary btn-lg center-block" onclick="verif()" >Afficher le résultat</button> 
          </div> 
         </div> 
        </form> 
       </div> 
      </div> 
     </div> 
    </div> 

<!-- Modal 2 -->  
    <div class="modal fade" id="synthese" tabindex="-1" role="dialog" aria-labelledby="myModalLabel""> 
     <div class="modal-dialog modal-lg" role="document"> 
      <div class="modal-content"> 

       <div class="modal-header"> 
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
        <h4 class="modal-title" id="myModalLabel">Synthèse :</h4> 
       </div> 

       <div class="modal-body"> 

        <div class="modal-body"> 
         <button type="button" class="btn right" data-dismiss="modal" style="float:right;">Relancer</button> 
        </div> 

        <br> 

       </div> 
      </div> 
     </div> 
    </div> 
    <script src="js/bootstrap.min.js"></script> 
</body> 

मेरे process.php:

<?php 
$myemail = '[email protected]'; 
if (isset($_POST['e1'])) { 
$e1nom = strip_tags($_POST['e1']); 
$e2prenom = strip_tags($_POST['e2']); 
$e3mail = strip_tags($_POST['e3']); 
$e4tel = strip_tags($_POST['e4']); 
$e5fonction = strip_tags($_POST['e5']); 
$e6message = strip_tags($_POST['e6']); 
echo "<span class=\"alert alert-success\" >Your message has been received. Thanks! Here is what you submitted:</span><br><br>"; 
echo "<stong>Nom : </strong> ".$e1nom."<br>"; 
echo "<stong>Prenom: </strong> ".$e2prenom."<br>"; 
echo "<stong>Mail : </strong> ".$e3mail."<br>"; 
echo "<stong>Tel : </strong> ".$e4tel."<br>"; 
echo "<stong>Fonction : </strong> ".$e5fonction."<br>"; 
echo "<stong>Message : </strong> ".$message."<br>"; 

$to = $myemail; 
$email_subject = "Lancement du simulateur de prix PPE"; 
$email_body = "Lancement d une nouvelle simulation. \n\n". 
" Detail de la simulation :\n\n". 
" Nom : $e1nom \n". 
" Prenom : $e2prenom \n". 
" Mail : $e3mail \n". 
" Tel : $e4tel \n". 
" Fonction : $e5fonction \n". 
" Message :\n $e6message"; 
$headers = "From: [email protected]\n"; 
$headers .= "Reply-To: $email"; 
mail($to,$email_subject,$email_body,$headers); 
}?> 
+0

बनाने के अपने क्षेत्र का नाम स्ट्रिंग जैसे E1 जोड़ सकते हैं करने के लिए ---> "E1" – Monty

+0

क्षमा करें, मुझे समझ में नहीं आता कि मुझे क्या करना है: -/ – Gurol

+0

इसे आज़माएं और अपना कोड संकलित करें। आप किस त्रुटि का सामना कर रहे हैं? – Monty

उत्तर

2

यह रूपों जावास्क्रिप्ट के माध्यम से आप हमेशा के रूप में अच्छी serverside वैसे भी सत्यापित करना चाहिए की बात आती है (जब से तुम 'कर सकते हैं विज़िटर द्वारा आपको जो कुछ भी भेजता है उस पर भरोसा न करें), उस तरफ, जमा बटन का उपयोग होने पर फ़ॉर्म सबमिट करने के लिए कुछ भी नहीं है।

तो या तो सबमिट बटन के बजाय फॉर्म बटन को 'बटन' में बदलें या अपने सत्यापन की शुरुआत में फॉर्म को अपनी डिफ़ॉल्ट कार्रवाई चलाने से रोकने के लिए कुछ जोड़ें। की तर्ज पर कुछ -

function verif(){$('#contact').preventDefault();$('#contact')....

या और भी बेहतर, दोनों का उपयोग करें। इस तरह फॉर्म तब तक सबमिट नहीं किया जाएगा जब तक फॉर्म के खिलाफ चेक चलाया गया हो, चाहे कितना भी हो।

+0

आपके उत्तर के लिए धन्यवाद लेकिन मैं एक नौसिखिया हूं और मुझे नहीं पता कि मुझे यह कैसे करना है ... क्या आप मेरी मदद कर सकते हैं? – Gurol

+0

फिर, उस फॉर्म पर बटन ढूंढें जो '' 'type = 'submit'''' के रूप में सेट है और इसे'' 'टाइप = 'बटन'''' में बदलें - यह फ़ॉर्म को सबमिट करने से रोकता है (और इसके बजाए बटन को बटन के रूप में व्यवहार करता है। अगला ''' फ़ंक्शन Verif() '' 'में इस प्रकार की शुरुआत में संशोधन करें। ' 'function verif() {$ (' # contact ')।चूक को रोकें(); $ ('# संपर्क')। Bootstrapvalidator (...... आदि आदि '' 'इस तरह –

+0

? ' (Verif समारोह) { \t \t \t $ ('# संपर्क') \t \t \t \t .preventDefault ({ \t \t \t \t}) \t \t \t \t .bootstrapValidator ({ \t \t \t \t \t लाइव: 'disabl एड ', \t \t \t \t \t संदेश:' cette valeur स्था invalide ', \t \t \t \t \t feedbackIcons: { \t \t \t \t \t \t वैध:' Glyphicon Glyphicon-ठीक ', \t \t \t \t \t \t अमान्य: 'ग्लाइफ़िकॉन ग्लाइफिकॉन-हटाएं', \t \t \t \t \t \t validat ... ' मैं एक त्रुटि मिल गया है: ' Uncaught TypeError:। $ (...) preventDefault एक function' – Gurol

1

टिप्पणी इस लाइन: लाइव: 'अक्षम',

सुझाव:

1.) // Validate the form manually 
     $('#resultat').click(function() { 
      $('#contact').bootstrapValidator('validate'); 
     }); 

2.) write your code in document.ready function. 

संशोधित:

.on('error.field.bv', function(e, data) { 
    //console.log('error.field.bv -->', data.element); 
}) 
.on('success.field.bv', function(e, data) { 
    //console.log('success.field.bv -->', data.element); 
    // envoimail(); 
}) 

.on('success.form.bv', function(e) { 
      // Prevent form submission 
      e.preventDefault(); 

      // Get the form instance 
      var $form = $(e.target); 

      // Get the BootstrapValidator instance 
      var bv = $form.data('bootstrapValidator'); 

      // Use Ajax to submit form data 
      $.post('process.php', $form.serialize(), function(result) { 
       console.log(result); 
      }, 'json'); 
     }); 
+0

मैंने कोशिश की लेकिन मुझे अपना "envoimail()" फ़ंक्शन कहां रखना है? – Gurol

+0

मेरे संशोधित उत्तर की जांच करें। @Gurol – Monty

+0

काम नहीं कर रहा है। जब मैं बटन पर क्लिक करता हूं, तो envoimail() फ़ंक्शन को कई बार लॉन्च किया जाएगा क्योंकि मुझे – Gurol

0

बदलें "सबमिट करें" से बटन प्रकार "बटन", तो जावास्क्रिप्ट में आप इस अगर हालत

if($('#contact').validate().form()){ 
    envoimail(); 
}); 
+0

'अनकॉट टाइप एरर: $ (...)। मान्य एक फ़ंक्शन नहीं है। कुछ छूट रहा है ? – Gurol

संबंधित मुद्दे