2017-04-18 25 views
2

我有一个用户填写的表单,数据发送到我的电子邮件,但我也希望使用api将邮件发送到我的邮件黑猩猩,但目前它不工作。用jQuery和php执行两个任务

这里是我的形式:

<form method="POST" onsubmit="return false;" id="dealerForm "> 
    <div class="row"> 
    <div class="col-md-6"> 
    <div class="form-group"> 
    <input id="subject" name="subject" value="Dealer partner message" type="hidden"> 
    <input class="form-control" placeholder="Your Name *" id="name" name="name" required="" type="text"> 
    </div> 
    <div class="form-group"> 
    <input class="form-control" placeholder="Your Email *" id="email" name="email" required="" type="email"> 
    </div> 
    <div class="form-group"> 
    <input class="form-control" placeholder="Your Phone *" id="phone" name="phone" required="" type="tel"> 
    </div> 
    </div> 
    <div class="col-md-6"> 
    <div class="form-group"> 
     <textarea class="form-control" placeholder="Your Dearlership Info *" id="message" name="message" required=""></textarea> 
    </div> 
</div> 
<div class="clearfix"></div> 
    <div class="col-lg-12 text-right"> 
     <button type="submit" class="btn send_msg">Send Message</button> 
    </div> 
</div> 
</form> 

这里是我的邮件黑猩猩API和邮件发送的PHP。

<?php 

    // Email address verification 
function isEmail($email) { 
    return filter_var($email, FILTER_VALIDATE_EMAIL); 
} 

if($_POST) { 

    $mailchimp_api_key = 'myapikey'; // enter your MailChimp API Key 
    // **** 
    $mailchimp_list_id = 'mylistID'; // enter your MailChimp List ID 
    // **** 

    $subscriber_email = addslashes(trim($_POST['email'])); 

    if(!isEmail($subscriber_email)) { 
     $array = array(); 
     $array['valid'] = 0; 
     $array['message'] = 'Not a valid email address!'; 
     echo json_encode($array); 
    } 
    else { 
     $array = array(); 
     $merge_vars = array(); 

     require_once 'mailchimp/php/MailChimp.php'; 

     $MailChimp = new \Drewm\MailChimp($mailchimp_api_key); 
     $result = $MailChimp->call('lists/subscribe', array(
       'id'    => $mailchimp_list_id, 
       'email'    => array('email' => $subscriber_email), 
       'merge_vars'  => $merge_vars, 
       'double_optin'  => false, 
       'update_existing' => true, 
       'replace_interests' => false, 
       'send_welcome'  => true, 
     )); 

     if($result == false) { 
      $array['valid'] = 0; 
      $array['message'] = 'An error occurred! Please try again later.'; 
     } 
     else { 
      $array['valid'] = 1; 
      $array['message'] = 'Success! Please check your mail.'; 
     } 

      echo json_encode($array); 

    } 

    } 

     if (isset($_POST["[email protected]"])) { 
     $to  = '[email protected]'; 
      $subject = $_POST['subject']; 
      $message = 'Name: '.$_POST["name"].'<br>Email: '.$_POST["email"].'<br>Phone: '.$_POST["phone"].'<br>Message: '.$_POST["message"]; 
      $headers = 'From: ' . $_POST["email"] . "\r\n" . 
      'Reply-To: ' . $_POST["email"] . "\r\n" . 
      'Content-type: text/html; charset=iso-8859-1;'; 

      if(mail($to, $subject, $message, $headers)){ 
      echo "New record created successfully"; 
     } 
    } 
?> 

虽然我的jQuery代码:

$("#dealerForm").on("submit", function(){ 
    //debugger; 
    $.ajax({ 
     type: 'POST', 
     var url; 
     url: "contact/dealer.php", 
     data: $("#dealerForm").serialize() 
    }).done(function (data) { 
     //debugger; 
     console.log(data); 
     window.location.href = "https://example.com/Thank%20You.html"; 
    }); 

    $("#dealerForm")[0].reset(); 
    return false; 
}); 

感谢您的评论和你的帮助。

+0

你为什么不在PHP中执行这两个操作? –

回答

0

邮件的黑猩猩修复我认为你需要解决如下之前:

  1. 您不必在形式上声明使用onsubmit="return false;"。您已在jQuery onsubmit中返回false。并从表单ID名称中删除空格。所以,你的窗体声明可以像<form method="POST" id="dealerForm">

  2. 从阿贾克斯

现在调试电子邮件/ mailchimp代码dealer.php删除var url;

+0

@Hussain谢谢您的评论,我做了您的建议,但不会发送邮件或向用户提交用户电子邮件。 –

+0

我标记的问题是第一个问题。现在电子邮件不发送这是第二个问题。电子邮件无法发送,原因不同。确保你的PHP代码没有错误。如果你在本地环境中测试,确保PHP邮件配置是正确的,可以发送电子邮件和mailchimp API信息是正确的 –

+0

@Hussain如果我单独的PHP逻辑作为只是代码发送电子邮件它发送出一个问题也是邮件黑猩猩api,但是当我结合在一起不起作用。 –