Ajax Call и возвращенный ответ - PullRequest
0 голосов
/ 24 июля 2011

Я пытаюсь добавить адрес в список в dotmailer (который для тех, кто не знаком, это сервис, такой как mailchimp), я могу добавить адрес, но изо всех сил пытаюсь получить какой-либо возвращаемый статус через Ajax.

У меня на странице формы в php

есть следующее
var emailEntered;

    $(document).ready(function() {

        $.fn.search = function() {
            return this.focus(function() {
                if( this.value == this.defaultValue ) {
                    this.value = "";
                }
            }).blur(function() {
                if( !this.value.length ) {
                    this.value = this.defaultValue;
                }
            });
        };
        $("#email").search();

        $("#sendButton").click(function() {
                $(".error").hide();
                var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
                var emailaddressVal = $("#email").val();

                if(emailaddressVal == '') {
                    $("#message").html('<span class="error">Enter your email address before submitting.</span>');
                    return false; 
                }
                else if(!emailReg.test(emailaddressVal)) {
                    $("#message").html("<span class='error'>Please check your email address.</span>");
                    return false; 
                } 
                else {
                    emailEntered = escape($('#email').val());
                }

        });
        $('#signup').submit(function() {
            $("#message").html("<span class='error'>Adding your email address...</span>");
            $.ajax({
                url: 'dotmailerInput.php',
                data: 'ajax=true&email=' + emailEntered,
                success: function(msg) {
                    $('#message').html(msg);
                }
            });
            return false;
        });

    });
</script>

<form id="signup" action="dotmailer.php" method="get">
                <input type="email" name="email" id="email" class="textinput" value="Enter" />
                <input type="submit" id="sendButton" name="submit" class="textinput" value="" />
            </form>
            <div id="message"> </div>

На странице dotmailer.php, на которую она ссылается, у меня есть следующее. Я вижу, что он дает мне ответ «добавив свой адрес электронной почты», но больше ничего после этого, и письмо, как я сказал, добавляется правильно.

$email = $_GET['email'];    
$username = ""; //apiusername
$password = ""; //api password      
$addressbookid = ;
$AudienceType = "Unknown";
$OptInType = "Unknown";
$EmailType = "Html";


try {

$client = new SoapClient("http://apiconnector.com/api.asmx?WSDL");
$contact = array("Email" => $email,"AudienceType" => $AudienceType, "OptInType" => $OptInType, "EmailType" => $EmailType, "ID" => -1);

$dotParams = array("username" => $username, "password" => $password, "contact" => $contact, "addressbookId" => $addressbookid);
$result = $client->AddContactToAddressBook($dotParams);
return "Success";
}
catch (Exception $e) {
return "Error";
}

Буду очень признателен за любые советы или подсказки о том, на что смотреть и куда идти дальше.

Chris

1 Ответ

0 голосов
/ 24 июля 2011

Попробуйте echo вместо return, потому что вы находитесь на верхнем уровне в PHP и будете выводить, используя это (вместо return присвоение функции значения).

echo "Success";
}
catch (Exception $e) {
echo "Error";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...