2016-02-16 37 views
0

我使用bellow html代码提交用户电子邮件在我的mailchimp帐户列表使用mailchimp API。我有一个空白页后提交mailchimp订阅php

表格代号:

..... 

    <form id="signup-form" action="php/newsletter-subscribe.php" method="post"> 
     <input type="email" name="email" id="email" placeholder="Email Address" /> 
     <br> 
     <input type="submit" value="Go!" onclick="wating()" /> 
    </form> 

    ...... 

通讯订阅PHP代码:

require_once 'mailchimp/MailChimp.php'; 
use \DrewM\MailChimp\MailChimp; 

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

if($_POST) { 
    $mailchimp_api_key = 'xxxxxxxxxxxxxxxxxxxxx-xx'; // enter your MailChimp API Key 
    $mailchimp_list_id = 'xxxxxxxxxx'; // enter your MailChimp List ID 

    $subscriber_email = addslashes(trim($_POST['email'])); 
    if(!isEmail($subscriber_email)) { 
     echo '<script type="text/javascript">swal("Error!", "Please try again.", "error")</script>'; 
    } else { 
     $array = array(); 
     $MailChimp = new MailChimp($mailchimp_api_key); 
     $result = $MailChimp->post("lists/$mailchimp_list_id/members", [ 
      'email_address' => $subscriber_email, 
      'status'  => 'subscribed', 
     ]); 

     if($result == false) { 
      $array = '<script type="text/javascript">swal("Error!", "Please try again.", "error")</script>'; 
     } else { 
      $array = '<script type="text/javascript">swal("Great!", "Your email has been subscribed", "success")</script>'; 
     } 
     echo json_encode($array); 
    } 
} 

的问题是在我提交表单我得到空白页没有任何错误日志和电子邮件加入我的mailchimp帐户没有任何错误。

我试图改变echo javascript in line 22, 35 and 38与像alert("Text Here");另一个Java脚本警报和它的工作,除了我得到同样的事情空白页

如何解决这个问题,并在相同的HTML表单页面呼应JavaScript警告没有重定向到空白页?

+0

你如何检查网页是否为空?你看过实际的来源吗? – PeeHaa

+0

@PeeHaa @PeeHaa在我提交表单后,将其重定向到newsletter-subscribe.php,并在空白页面显示,它应该在第22行,第35行和第38行中回显javascript警报,而不会将我带到newsletter-subscribe.php(空白页) –

+0

此脚本只生成小的JavaScript代码。没有更多。在浏览器中,您将拥有空白页面 - 这是正确的。 – newman

回答

1

首先要设置:

$array = array(); 

但是后来,你这样做:

if($result == false) { 
     $array = '<script type="text/javascript">swal("Error!", "Please try again.", "error")</script>'; 
    } else { 
     $array = '<script type="text/javascript">swal("Great!", "Your email has been subscribed", "success")</script>'; 
    } 
    echo json_encode($array); 

换句话说,你正在改变阵列为字符串。 尝试将代码更改为:

if($result == false) { 
     $array = array('<script type="text/javascript">swal("Error!", "Please try again.", "error")</script>'); 
    } else { 
     $array = array('<script type="text/javascript">swal("Great!", "Your email has been subscribed", "success")</script>'); 
    } 
    echo json_encode($array); 

另外,我会避免使用<script type="text/javascript">那里,我将只返回一个适当的JSON响应。然后,你用ajax(jquery)调用这个文件,解码json并显示警报。

也许这样的事情会给你一个想法: http://labs.jonsuh.com/jquery-ajax-php-json/