I'm trying to post the name of what the user enters to sign up in a Mailchimp form (name value is FNAME
) to show in my custom thank you page (e.g. "Thank you NAME HERE
,"). I haven't seen how to do this with Mailchimp's documentation other than seeing to use *|FNAME|*
which doesn't work for what I'm trying to do and realized it might be best to just have posted via <?php echo $_POST["FNAME"]; ?>
which I've included in my thankyou.html
which is separate to where the form is located (index.html
) and the PHP file (store-address.php
). However, I can't seem to get it all tied together to actually print the name entered and was wondering if I'm doing anything wrong. Any help is kindly appreciated.
To clarify in an example.. Suzy signs up on my mailchimp form and clicks submit and my thank you page then pops up to say "Thank you Suzy,". Essentially, needs to read what the user entered in the input field to then output again to thank them by their entry. Any solution would be awesome!
index.html (form)
<!-- Begin MailChimp Signup Form -->
<div id="mc_embed_signup">
<form action="<?=$_SERVER['PHP_SELF']; ?>" method="get" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" novalidate>
<div class="mc-field-group">
<input type="text" value="" name="FNAME" class="" id="mce-FNAME" placeholder="Name">
</div>
<div class="mc-field-group">
<input type="email" value="" name="email" class="required email" id="mce-EMAIL" placeholder="Email address">
</div>
<div class="clear"></div>
<div class="mc-field-group">
<input type="text" value="" name="MMERGE2" class="" id="mce-MMERGE2" placeholder="Zip Code">
</div>
<div class="mc-field-group">
<label for="mce-MMERGE3" class="believeBecause">I believe because:</label>
<select name="MMERGE3" class="dropdown" id="mce-MMERGE3">
<option value="" class="label"></option>
<option value="I am a parent">I am a parent</option>
<option value="I am an educator">I am an educator</option>
<option value="I am a student">I am a student</option>
<option value="I just care">I just care</option>
</select>
</div>
<div id="mce-responses" class="clear">
<div class="response" id="mce-error-response" style="display:none"></div>
<div class="response" id="mce-success-response" style="display:none"></div>
</div> <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
<div style="position: absolute; left: -5000px;"><input type="text" name="b_3434334434_0dd34c33da" value=""></div>
<div class="clear"><input type="submit" value="MAKE A MOVEMENT" name="subscribe" id="mc-embedded-subscribe" class="button"></div>
</form>
</div>
<!--End mc_embed_signup-->
</div>
<!-- /.formWrapper -->
<div id="response">
<? require_once('inc/store-address.php'); if($_GET['subscribe']){ echo storeAddress(); } ?>
</div>
store-address.php (what sends the details to via Mailchimp and outputs my thankyou.html)
<?php
function storeAddress(){
// Validation
if(!$_GET['email']){ return '<p class="statusJoin">No email address provided</p>'; }
if(!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$/i", $_GET['email'])) {
return '<p class="statusJoin">Email address is invalid</p>';
}
require_once('MCAPI.class.php');
// grab an API Key from http://admin.mailchimp.com/account/api/
$api = new MCAPI('12345fakeAPIkey-us4');
$merge_vars = Array(
'email' => $_GET['email'],
'FNAME' => $_GET['FNAME'],
'MMERGE2' => $_GET['MMERGE2'],
'MMERGE3' => $_GET['MMERGE3']
);
// 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 = "fakeListID12345";
if($api->listSubscribe($list_id, $_GET['email'], $merge_vars) === true) {
// It worked!
echo '<script>';
echo '$( "#formWrapper" ).hide();';
echo '$( "#response" ).hide();';
echo '$( "#response" ).show();';
echo '</script>';
readfile("../thankyou.html");
}
else {
// An error ocurred, return error message
return 'Error: ' . $api->errorMessage;
}
}
// If being called via ajax, autorun the function
if($_GET['ajax']){ echo storeAddress(); }
?>
And here is the thankyou.html
to output the person's name
<html lang="en">
<body>
<h2 class="thankYou">Thank you, <?php echo $_POST["FNAME"]; ?></h2>
</body>
</html>`