2014-09-05 5 views
0

Im пытается создать модальное всплывающее окно после отправки на mailchimp. Я могу заставить всплывать, чтобы работать над успехом, но даже если форма отбрасывает ошибку mailchimp, она по-прежнему всплывает и не регистрируется, что она не была успешной, потому что ошибка произошла из mailchimp.Сообщение об успешном успехе Mailchimp API

Im возникли проблемы

Heres мой скрипт для отправки формы

$('#signup').submit(function() { 
    $("#message").html("Submitting your entry..."); 

    $.ajax({ 
     url: 'inc/store-address.php', 
     data: $('#signup').serialize(), 
     success: function(msg) { 
      $('#message').html(msg); 
      $('.modal').delay(500).addClass('is-visible'); 
     } 

    }); 
    return false; 
}); 

и вот файл в магазине address.php, который отправляет информацию в Mailchimp

<?php 

function storeAddress() { 

    // Validation 
    if(!$_GET['email']) { 
     return "No email address provided"; 
    } 

    if(!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$/i", $_GET['email'])) { 
     return "Email address is invalid"; 
    } 


    require_once('MCAPI.class.php'); 

    $api = new MCAPI('api-key'); 

    $merge_vars = Array( 
     'EMAIL' => $_GET['email'], 
     'FNAME' => $_GET['fname'], 
     'LNAME' => $_GET['lname'] 
     ); 

    $list_id = "list_id"; 

    if($api->listSubscribe($list_id, $_GET['email'], $merge_vars) === true) { 
     return 'Success!&nbsp;'; 
    } else { 
     // An error ocurred, return error message 
     return '<b>Error:</b>&nbsp; ' . $api->errorMessage; 
    } 

} 

// If being called via ajax, autorun the function 
if($_GET['ajax']){ echo storeAddress(); } 
?> 

Я продолжать искать решение, но любая помощь или направление высоко оценили

T hanks

ответ

1

Запрос - ответ 200, который является успешным для пост-функции, вы должны проверить, какое значение дает фактический ответ, чтобы определить, действительно ли это успешный ответ. Что-то вроде этого:

$.ajax({ 
    url: 'inc/store-address.php', 
    data: $('#signup').serialize(), 
    success: function(msg) { 
     if(msg === 'Success! ') { 
      $('#message').html(msg); 
      $('.modal').delay(500).addClass('is-visible'); 
     } 
    } 

}); 
+0

его замораживание на подающем входе с тем, что добавил к нему по какой-то причине в настоящее время – strohy85

+0

Пожалуйста делать console.log на сообщ аа успешного ответа и независимо от того, что сообщ будет должен быть помещен, где, если (msg === «Успех!») Возможно, я ошибся «Успех!» –

+0

Спасибо, вам удалось заставить его работать. – strohy85

Смежные вопросы