MailChimp API&;添加隐藏字段的AJAX

MailChimp API&;添加隐藏字段的AJAX,ajax,forms,mailchimp,hidden-field,Ajax,Forms,Mailchimp,Hidden Field,我目前在我们网站的页脚有一个简单的普通新闻稿订阅表单,只有一个电子邮件文本字段。我们想知道订阅者填写表格的语言版本。(domain.com/nl/.de/.it等) 我添加了一个隐藏字段,用于获取当前语言的值 <li> <label for="footer-newsletter-input"><?php __("nav.newsletter.youremail"); ?></label> <input type="te

我目前在我们网站的页脚有一个简单的普通新闻稿订阅表单,只有一个电子邮件文本字段。我们想知道订阅者填写表格的语言版本。(domain.com/nl/.de/.it等)

我添加了一个隐藏字段,用于获取当前语言的值

    <li>
    <label for="footer-newsletter-input"><?php __("nav.newsletter.youremail"); ?></label>
    <input type="text" id="footer-newsletter-input" class="font-MuseoSans100 validate" data-validationtype="email">
     </li>

     <li class="hidden">
     <input type="text" id="footer-newsletter-input-language" class="font-MuseoSans100" value="<?php echo isset(Language::$short) ? Language::$short : 'en'; ?>">
     </li>

您需要在表单字段中添加一个
name
参数。所以可能会变成这样:

<input type="text" id="footer-newsletter-input-language" name="language" class="font-MuseoSans100" value="<?php echo isset(Language::$short) ? Language::$short : 'en'; ?>">

您必须确保在mailchimp中为该列表创建一个名为CNTRCODE的合并字段。

有什么问题吗?我不知道如何使用id=“footer newsletter input language”将输入值发送给mailchimp。我想我需要在initNewsletter:function()中声明该值,并将其与Ajax post一起发送。(我在我认为需要添加的地方添加了???),然后需要更新控制器以包含merge_vars=>('CNTRCODE'=>$\u POST['CNTRCODE']),添加了行,但似乎不起作用。我想我还需要在initNewsletter:function()中添加语言来声明并发送它。你说的“似乎不起作用”是什么意思?用户是否已被订阅?CNTRCODE丢失?您看过原始请求/响应了吗?
    public function subscribe() {

    // API KEY
    $apikey = '????';
    $listid = '????';

    $MailChimp = new MailChimp($apikey);
    $result = $MailChimp->call('lists/subscribe', array(
        'id'                => $listid,
        'email'             => array('email'=>$_POST['email']),
        //'merge_vars'        => array('FNAME'=>$_POST['fname'], 'LNAME'=>$_POST['lname']),
        'double_optin'      => true,
        'update_existing'   => true,
        'replace_interests' => false,
        'send_welcome'      => false,
    ));

    echo json_encode($result);

}
<input type="text" id="footer-newsletter-input-language" name="language" class="font-MuseoSans100" value="<?php echo isset(Language::$short) ? Language::$short : 'en'; ?>">
$result = $MailChimp->call('lists/subscribe', array(
    'id'                => $listid,
    'email'             => array('email'=>$_POST['email']),
    'merge_vars'        => array('CNTRCODE'=>$_POST['language']),
    'double_optin'      => true,
    'update_existing'   => true,
    'replace_interests' => false,
    'send_welcome'      => false,
));