我还没有使用我的mailchimp一大堆,所以我想知道是否可以轻松地发送表单数据到mailchimp而不使用他们的预制模板。另外,mailchimp会发送某种回调吗?我想要提交表单,然后在完成后将用户重定向到下载页面。如果它能在ajax/jquery中工作,它会更好。使用现有的表单将数据发送到mailchimp,然后重定向
回答
基本上,您可以在自己的自定义HTML表单上使用jQuery ajax()
来访问与MailChimp API进行通信的PHP文件。 MailChimp的响应通过Ajax回到您的原始表单,因此没有重定向或刷新。但是,如果您想重定向,则只需更改jQuery ajax函数即可。
即使您不使用PHP,它也很可能安装在您的服务器上。你的用户永远不会看到PHP文件;他们只是在后端使用。
Source: A SO answer I posted previously...
摸索了一段时间后,我发现使用与jQuery的PHP示例站点。从那里我能够创建一个简单的HTML页面与jQuery包含基本注册表单。 PHP文件在后台“隐藏”,用户永远不会看到它们,但jQuery仍然可以使用&。
1)点击此处下载PHP 5 jQuery的例子...
http://apidocs.mailchimp.com/downloads/mcapi-simple-subscribe-jquery.zip
如果你只有PHP 4,只需下载MCAPI的1.2版本,并更换相应MCAPI.class.php
文件之上。
http://apidocs.mailchimp.com/downloads/mailchimp-api-class-1-2.zip
2)通过在适当位置增加您的API密钥和列表ID为store-address.php
文件按照自述文件中的方向。
3)您可能还想收集用户的姓名和/或其他信息。您必须使用相应的合并变量将数组添加到store-address.php
文件中。
这里是我的store-address.php
文件的样子,我也收集了姓,名和电子邮件类型:
<?php
function storeAddress(){
require_once('MCAPI.class.php'); // same directory as store-address.php
// grab an API Key from http://admin.mailchimp.com/account/api/
$api = new MCAPI('123456789-us2');
$merge_vars = Array(
'EMAIL' => $_GET['email'],
'FNAME' => $_GET['fname'],
'LNAME' => $_GET['lname']
);
// grab your List's Unique Id by going to http://admin.mailchimp.com/lists/
// Click the "settings" link for the list - the Unique Id is at the bottom of that page.
$list_id = "123456a";
if($api->listSubscribe($list_id, $_GET['email'], $merge_vars , $_GET['emailtype']) === true) {
// It worked!
return 'Success! Check your inbox or spam folder for a message containing a confirmation link.';
}else{
// An error ocurred, return error message
return '<b>Error:</b> ' . $api->errorMessage;
}
}
// If being called via ajax, autorun the function
if($_GET['ajax']){ echo storeAddress(); }
?>
4)创建你的HTML/CSS/jQuery的形式。它不需要在PHP页面上。
这里是我的index.html
文件看起来像:
<html>
<head>
<title>Welcome</title>
<style type="text/css" media="screen">
body { font-size: 16px; }
input { font-size: 16px; }
.textinput { width: 300px; height: 20px; }
#message { color: #8e2c30; font-size: 15px; font-weight: bold; padding: 10px; border: solid 1px #6d6e70; }
</style>
</head>
<body>
<div style="width:550px;">
<div style="text-align:right;">
<b>Sign Up for the Newsletter:</b><br />
<br />
<form id="signup" action="index.html" method="get">
First Name: <input type="text" name="fname" id="fname" class="textinput" value="" />
<br />
Last Name: <input type="text" name="lname" id="lname" class="textinput" value="" />
<br />
email Address (required): <input type="email" name="email" id="email" class="textinput" value="" />
<br />
<input type="radio" name="emailtype" value="html" checked="checked">HTML <input type="radio" name="emailtype" value="text">Text <input type="radio" name="emailtype" value="mobile">Mobile Device<br />
<br />
<input type="submit" id="SendButton" name="submit" class="textinput" value="Submit" />
</form>
</div>
<div id="message">
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
var emailEntered,
fnameVal,
lnameVal,
emailtypeVal;
$(document).ready(function() {
$("#SendButton").click(function() {
$(".error").hide();
var emailReg = /^([\w-\.][email protected]([\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'>That is not an email address. Typo?</span>");
return false;
}
else {
emailEntered = escape($('#email').val());
}
fnameVal = escape($("#fname").val());
lnameVal = escape($("#lname").val());
emailtypeVal = $('input:radio[name=emailtype]:checked').val();
});
$('#signup').submit(function() {
$("#message").html("<span class='error'>Adding your email address...</span>");
$.ajax({
url: 'inc/store-address.php', // proper url to your "store-address.php" file
data: 'ajax=true&email=' + emailEntered +'&fname=' + fnameVal + '&lname=' + lnameVal + '&emailtype=' + emailtypeVal,
success: function(msg) {
$('#message').html(msg);
}
});
return false;
});
});
</script>
</body>
</html>
必需的程序...
的index.html如上构成或相似。使用jQuery,外观和选项是无止境的。
商店address.php文件下载为对Mailchimp网站PHP例子的一部分,并与您API KEY和列表ID修改。您需要将其他可选字段添加到数组中。
MCAPI.class.php从Mailchimp站点下载的文件(PHP 5版本1.3或PHP 4版本1.2)。将它放在与store-address.php相同的目录中,或者您必须在store-address.php内更新url路径,以便它可以找到它。
- 1. mailchimp所需的更多API示例 - 发送数据然后重定向
- 2. 发送表单数据到Mailchimp而不重定向到另一页
- 3. 如何发布表单数据,收集数据然后重定向到页面?
- 4. 表单发布后重定向到URL
- 5. 通过POST发送数据,然后重定向到相同的页面
- 6. 用PDO发送数据后重定向到空白页
- 7. AngularJS添加重定向后无法将JSON数据发送到数据库
- 8. urllib2:提交表单然后重定向
- 9. 发送表单数据到一个页面,然后另一个?
- 10. 发送表单数据到SQL然后PDF
- 11. 如何使用Laravel将表单保存到数据库后重定向页面?
- 12. 使用Flask将表单数据发送到数据库
- 13. 如何使烧瓶发送文件,然后重定向?
- 14. 后表单,等待10秒钟,然后重定向到
- 15. 如何将表单数据“发送”到C#代码,然后让C#“发送”数据回来?
- 16. 将数据发送到java.js页然后将其发送到另一个页面
- 17. 使用Javascript/jQuery将重定向的POST数据发送到顶级iframe?
- 18. 使用PHP将数据发送到HTML而不使用表单
- 19. jquery表单验证按钮单击,然后发送JavaScript数据
- 20. 使用admin登录表单,然后重定向回
- 21. 搜索表单发送后的PHP重定向
- 22. 将表单数据发送到XML
- 23. 提交旧的Google表单,然后重定向到另一页
- 24. 如何使用Spring的AnnotationMethodHandlerAdapter实现重定向后的表单?
- 25. 使用HttpWebRequest c发布数据后重定向到Url#
- 26. 使用ajax发送数据,然后发送电子邮件
- 27. 将本地数据库的merg标记发送到mailchimp
- 28. 用phpmailer发送后重定向
- 29. 发布HTML表单后重定向
- 30. 如何通过我的页面发送数据到mailchimp列表