2015-04-04 30 views
1

请原谅我的第一篇文章!我能够成功地发送“硬编码” global_merge_vars与mandrill合并标签不接受变量值

`"autotext": "true", 
    "merge": "true", 
    "global_merge_vars": [ 
     { 
      "vars": 
       { 
        "name": "LSMESSAGE", 
        "content": "hardcoded" 
       } 

     } 
    ], 

    "subject": "*|LSMESSAGE|*", 
    "html": "<p> *|LSMESSAGE|* </p>"` 

但我无法名为ctlsm变量传递到“内容”。

"autotext": "true", 
    "merge": "true", 
    "global_merge_vars": [ 
     { 
      "vars": 
       { 
        "name": "LSMESSAGE", 
        "content": ctlsm 
       } 

     } 
    ], 

    "subject": "*|LSMESSAGE|*", 
    "html": "<p> *|LSMESSAGE|* </p>" 

我只是在我的邮件中得到star * | LSMESSAGE | * star。 第一个问题 - 是否可以在这里使用一个变量? (我尝试把ctlsm放在引号中:“ctlsm”) 如果是,我在做什么错?该变量是在mandrill帖子之前声明的,并且有一个值,但似乎在$ ajax部分中丢失了它的值。

// send email using mandrill and API key 
     $.ajax({ 
type: "POST", 
url: "https://mandrillapp.com/api/1.0/messages/send.json", 
data: { etc etc 

回答

0

加+号CONCAT字符串中的JavaScript

"content": "+ctlsm+" 

这里是用字符串变量CONCAT例子。

var text = "hello" 
document.write(text+" world"); /// this will write hello world 
+0

这将是很好,如果你可以形容,*为什么*这解决了问题。 (VLQRQ) – 2015-04-04 10:15:24

+0

这很简单。如果你想在JavaScript中使用任何字符串的变量,然后使用+运算符,你可以在字符串内连接变量 – 2015-04-04 10:17:54

0

感谢Nishit。它现在有效。从代码中删除了“var”,将“subject”和“html”代码移到顶端,并在mandril站点上的代码片段中添加了“merge_language”:“mailchimp”。变量名称ctlsm没有引号。无论如何,这是诀窍。下面是工作代码:

// send email using mandrill and API key$.ajax({ 
type: "POST", 
url: "https://mandrillapp.com/api/1.0/messages/send.json", 
data: { 
"key": "yourapikeyhere", 
"message": { 
"subject": "*|LSMESSAGE|*", 
"html": "<p> *|LSMESSAGE|* </p>", 
"text": " *|LSMESSAGE|*", 
"from_email": "youremailhere", 
    "to": [ 
     { 
     "email": "youremailhere", 
     "name": "yournamehere", 
     "type": "to" 
     }, 
     { 
     "email": "youremailhere", 
     "name": "yournamehere", 
     "type": "to" 
     } 
    ], 

    "autotext": "true", 
    "merge": "true", 
    "merge_language": "mailchimp", 
    "global_merge_vars": [ 
     { 
      "name": "LSMESSAGE", 
      "content": ctlsm 

     } 
    ] 



} 

}