简体   繁体   English

在注册表格中张贴提交的姓名,以感谢您的页面

[英]Post the name submitted in a sign up form to thank you page

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 (eg "Thank you NAME HERE ,"). 我正在尝试以Mailchimp形式张贴用户输入的用于注册的名称(名称值为FNAME ),以显示在我的自定义感谢页面中(例如“ 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"]; ?> 除了看到要使用*|FNAME|*以外,我还没有看到如何用Mailchimp的文档进行此操作,这对我要尝试的操作不起作用,并且意识到最好只是通过<?php echo $_POST["FNAME"]; ?> <?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 ). 我已经在我的thankyou.html中包含了<?php echo $_POST["FNAME"]; ?> ,它与表单的位置( index.html )和PHP文件( 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,". 在示例中进行说明。Suzy在我的mailchimp表单上签名,然后单击“提交”,然后弹出我的感谢页面,说“谢谢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) index.html(窗体)

    <!-- 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) store-address.php(通过Mailchimp将详细信息发送到并输出我的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 这是thankyou.html用于输出此人的姓名

<html lang="en">
  <body>

    <h2 class="thankYou">Thank you, <?php echo $_POST["FNAME"]; ?></h2>

  </body>
</html>`

To make that work at all, you'll have to rename index.html to index.php. 要使其完全正常工作,您必须将index.html重命名为index.php。 If it's not a PHP file, it can't execute any of the PHP code it has, so it will never include the file store-address.php. 如果它不是PHP文件,则它将无法执行其拥有的任何PHP代码,因此它将永远不会包含文件store-address.php。

Inside thankyou.php (renamed), you have to use the GET method, since that is the method used by your form: 在thankyou.php(重命名)内部,您必须使用GET方法,因为这是表单使用的方法:

<h2 class="thankYou">Thank you, <?php echo $_GET["FNAME"]; ?></h2>

To get the contents of thankyou.php, you can simply change this line: 要获取thankyou.php的内容,只需更改以下行:

readfile("../thankyou.html");

to: 至:

include 'thankyou.php';

您的表单方法是GET但是您尝试显示POST变量...使用

<h2 class="thankYou">Thank you, <?php echo $_GET["FNAME"]; ?></h2>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM