在报名表中张贴提交的姓名以感谢您的页面

时间:2014-03-21 18:55:38

标签: javascript php jquery html forms

我试图发布用户输入的名称以Mailchimp格式注册(名称值为FNAME)以显示在我的自定义感谢页面中(例如&#34;谢谢你NAME HERE,&#34;)。我还没有看到如何使用Mailchimp的文档做到这一点,除了看到使用*|FNAME|*这对我正在尝试做的事情没有用,并意识到它可能是最好只通过我<?php echo $_POST["FNAME"]; ?>中包含的thankyou.html发布,该index.html与表单所在位置(store-address.php)和PHP文件({{1}分开) })。但是,我似乎无法将所有内容捆绑在一起以实际打印输入的名称,并且想知道我是否做错了什么。非常感谢任何帮助。

在一个例子中澄清.. Suzy在我的mailchimp表单上注册并点击提交,然后我的感谢页面会弹出来表示&#34;谢谢Suzy,&#34;。基本上,需要读取用户在输入字段中输入的内容然后再次输出以感谢他们的输入。任何解决方案都会很棒!

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(通过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(); }
?>

以下是输出此人姓名的thankyou.html

<html lang="en">
  <body>

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

  </body>
</html>`

2 个答案:

答案 0 :(得分:1)

要完成这项工作,您必须将index.html重命名为index.php。如果它不是PHP文件,它就不能执行它所拥有的任何PHP代码,因此它永远不会包含文件store-address.php。

在thankyou.php(重命名)中,您必须使用GET方法,因为这是您的表单使用的方法:

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

要获取thankyou.php的内容,您只需更改此行:

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

为:

include 'thankyou.php';

答案 1 :(得分:0)

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

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