开发者

Ajax Call and Returned Response

I'm trying to add an address to a list in dotmailer (which for those not familiar is a service like mailchimp) I can get the address added but am struggling to get any sort of returned status via Ajax.

I've got the following in my form page in 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 == '') {
             开发者_C百科       $("#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>

In the dotmailer.php page that it is referencing I've got the following. I can see it gives me a response "adding your email address" but nothing else after this and the email as I said gets added correctly.

$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";
}

Any helps or tips on what to look at or where to go next would be greatly appreciated.

Chris


Try echo instead of return because you are at the top level in PHP and will do output using this (instead of return gibing a function a value).

echo "Success";
}
catch (Exception $e) {
echo "Error";
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜