2016-03-22 13 views
2

Burada birçok cevaplar okudum ve hemen hemen her şeyi denedim ama onlar bana yardım etmemek için bana yardımcı olacaklar. Jquery ajax ile yapmak istiyorum. E-posta mükemmel gidiyor ama sorun benim formum "eylem" e yönlendiriyor. PreventDefault() işlevini denedim; ve yanlış döndürür; ama bana yardım etmedi.phpmailer için php form gönderimi jquery ajax kullanarak posta göndermek için

Kullanıcıya iletiyi başarılı bir şekilde gönderdikten sonra göstermesini istiyorum. burada

<script> 

    $(document).ready(function(){ 
     $("#singlebutton").click(function(event) 
     { 
      /* stop form from submitting normally */ 
      event.preventDefault(); 

      /* get some values from elements on the page: */ 
      var $form = $(this), 
       $submit = $form.find('input[type="submit"]'), 
      name_value = $form.find('input[name="name"]').val(), 
      phone_value = $form.find('input[name="phone"]').val(), 

      email_value = $form.find('input[name="email"]').val(), 
      message_value = $form.find('textarea[name="message"]').val(), 
      url = $form.attr('action'); 

     /* Send the data using post */ 
     var posting = $.post(url, { 
      name: name_value, 
      email: email_value, 
      phone: phone_value, 
      message: message_value 
     }); 

     posting.done(function(data) 
     { 
      /* Put the results in a div */ 
      $("#contactResponse").html(data); 

      /* Change the button text. */ 
      $submit.text('Sent, Thank you'); 

      /* Disable the button. */ 
      $submit.attr("disabled", true); 
     }); 
     return false; 
     }); 



    }); 

    </script> 

benim php mailler kodu

 <?php 

    require_once '../assets/phpmailer/PHPMailerAutoload.php'; 

    if (isset($_POST['name'], $_POST['email'], $_POST['phone'], $_POST['message'])) { 

    $fields = [ 

     'name' => $_POST['name'], 
     'email' => $_POST['email'], 
     'phone' => $_POST['phone'], 
     'message' => $_POST['message'] 


     ]; 

     foreach ($fields as $field => $data) { 

     } 


    $m = new PHPMailer; 

    $m->isSMTP(); 
    $m->SMTPAuth = true; 
    $m->SMTPDebug = 1; 
    $m->Host = 'smtp.gmail.com'; 
    $m->Username = 'myemail'; 
    $m->Password = 'mypassword'; 
    $m->SMTPSecure = 'ssl'; 
    $m->Port = 465; 

    $m->isHTML(); 

    $m->Subject = 'Contact Form submitted'; 



      $m->Body = 'From:' . $fields['name'] . '(' . $fields['email'] . ')' . '<p><b>phone:</b><br/>' . $fields['phone'] . '</p>' . '<p><b>Message</b><br/>' . $fields['message'] . '</p>'; 


     $m->FromName = 'Contact'; 





     $m->AddAddress('[email protected]', 'Pawan'); 

     if ($m->send()) { 

     //  header('Location: ../index.php'); 
      //  print_r($_POST); 
     //  echo 'message send'; 
      echo "<h2>Thank you for your comment</h2>"; 
      //  die(); 
      } else { 
       //  echo 'try again later'; 
       //  print_r($_POST); 
      echo "<h2>Sorry, there has been an error</h2>"; 
       } 


    } 

i e-posta her zaman olsun ben önyükleme

 <form class="form-horizontal" action="sections/contactdata.php" method="post" id="contact-us-form" enctype="multipart/form-data"> 
        <!-- Name input--> 
         <div class="form-group"> 
         <div class="col-md-12"> 
          <input id="name" name="name" type="text" placeholder="Your Name" 
           class="form-control input-md"> 
         </div> 
        </div> 

        <!-- Email input--> 
        <div class="form-group"> 
        <div class="col-md-12"> 
         <input id="email" name="email" type="text" placeholder="Your Email" 
           class="form-control input-md"> 
        </div> 
       </div> 

       <!-- phone input--> 
       <div class="form-group"> 
        <div class="col-md-12"> 
         <input id="phone" name="phone" type="text" placeholder="Phone" 
           class="form-control input-md"> 
        </div> 
       </div> 

       <!-- Textarea --> 
       <div class="form-group"> 
        <div class="col-md-12"> 
         <textarea class="form-control" id="message" name="message" placeholder="Message" 
            rows="6"></textarea> 
        </div> 
       </div> 


       <!-- Button --> 
       <div class="form-group"> 
        <div class="col-md-4 pull-right"> 

         <input type="submit" name="singlebutton" class="btn btn-success" value="SEND" id="singlebutton"> 
        </div> 
       </div> 


      </form> 

benim jquery ajax kodu kullanıyorum benim form kodudur formu gönderirim ama eyleme geçer sayfa ve orada metni yankılanır. Yeniden göndermeden göndermek ve formu gönderen kullanıcıya gösterilmesini istiyorum ve e-postayı almalıyım.

Ayrıca, göndermeyi kullanarak kullanmaya çalıştım, ancak hiçbir şey bana yardımcı olmadı. Lütfen yanlış yaptığımı söyleyin.

Lütfen yardım edin bana teşekkür ederim.

+0

en göndermek için bu makaleye göz atalım aynıdır e-posta - http://www.kvcodes.com/2014/01/how-to-create-cont act-form-ile-PHPMailer-to-send-postalar / – Kvvaradha

cevap

3

phpmailer kodu

<?php 

    require_once '../assets/phpmailer/PHPMailerAutoload.php'; 

    if (isset($_POST['name'], $_POST['email'], $_POST['phone'], $_POST['message'])) { 

    $fields = [ 

    'name' => $_POST['name'], 
    'email' => $_POST['email'], 
    'phone' => $_POST['phone'], 
    'message' => $_POST['message'] 


]; 

foreach ($fields as $field => $data) { 

} 


$m = new PHPMailer; 

$m->isSMTP(); 
$m->SMTPAuth = true; 
$m->SMTPDebug = false; 
$m->do_debug = 0; 
$m->Host = 'smtp.gmail.com'; 
$m->Username = '[email protected]'; 
$m->Password = 'your-password'; 
$m->SMTPSecure = 'ssl'; 
$m->Port = 465; 

$m->isHTML(); 

$m->Subject = 'Contact Form submitted'; 



    $m->Body = 'From:' . $fields['name'] . '(' . $fields['email'] . ')' . '<p><b>phone:</b><br/>' . $fields['phone'] . '</p>' . '<p><b>Message</b><br/>' . $fields['message'] . '</p>'; 


    $m->FromName = 'Contact'; 





    $m->AddAddress('[email protected]', 'Pawan'); 

    if ($m->send()) { 


     echo 'Thank You '.$_POST["name"].' We Will Contact You Soon franchise form'; 
     die(); 
    } else { 
     echo 'try again later'; 
    } 


} 

benim jquery ajax kodu

<script type="text/javascript"> 



    $(document).ready(function(){ 

     $('#franchisedata').on('submit',function(){ 

      var that=$(this), 
       url=that.attr('action'), 
      type=that.attr('method'), 
      data={}; 

     that.find('[name]').each(function(index,value){ 

      var that=$(this), 
       name=that.attr('name'), 
       value=that.val(); 


      data[name]=value; 

     }); 

     $.ajax({ 

      url:url, 
      type:type, 
      data:data, 
      success:function(response){ 

       console.log(response); 
       alert(response); 
      } 


     }); 

     return false; 

    }); 
}); 
    </script> 

önyükleme formu daha önce

İlgili konular