根据用户在下拉表单上的选择为Mailchimp分配一个标签



我想根据用户在下拉列表中的选择为其分配一个标记。我在下拉列表中有两个选择:企业对企业,企业对消费者。如果用户选择企业对企业,我想给他们分配B2B的标签,如果他们选择企业对消费者,我想为他们分配B2C的标签。

这些标签将被推送或分配给以下数据变量中指定的标签阵列:

app.post('/' , (req, res) =>{
var firstName = req.body.firstName;
var lastName = req.body.lastName;
var email = req.body.email;
var data = {
status: "active",
members:[
{
tags: [],
email_address: email,
status: "subscribed",
merge_fields: {
FNAME: firstName,
LNAME: lastName,
},
}
],

}

我已经将下拉选择分配为按钮,并从EJS 中动态呈现

<div class="dropdown me-1">
<button class="btn btn-secondary dropdown-toggle" type="button" 
id="dropDownText"
data-bs-toggle="dropdown" aria-expanded="false">
Choose your interest
</button>
<ul class="dropdown-menu" aria-labelledby="dropdownMenuButton1">
<li><button class="dropdown-item" name="B2B" id="B2B"><%=b2b%></button></li>
<li><button class="dropdown-item" name="B2C" id="B2C"><%=b2c%></button></li>
</ul>
</div>

这是server.js

let b2b = "Business to Business";
let b2c = "Business to Consumer"

app.get('/', (req, res) => {
res.render('index', {
b2b: b2b,
b2c: b2c
});

下拉列表目前不在表单中,所以我想我必须创建一个来在POST请求中处理它,但是,我被困在如何创建逻辑上,以检查用户选择的哪个下拉列表将其传递到标记数组中。

因此,我将下拉列表添加到表单中,然后将dropdown选择与post请求配对,并将其推送到标签数组中:

在EJS中,请注意select标记需要有一个名称,这是我们用于req.body:的名称

<form action="/" method="post">
<div class="dropdown me-1">
<select name="dropDown" id="dropDown">
<option value="Select option">Choose your interest</option>
<option value="B2B" name="B2B">Business to Business</option>
<option value="B2C">Business to Consumer</option>
</select>

我在POST 中将其创建为变量

app.post('/' , (req, res) =>{
var firstName = req.body.firstName;
var lastName = req.body.lastName;
var email = req.body.email;
let tag = req.body.dropDown;

然后我将发送回Mailchimp API 的数据中的值赋值

var data = {
status: "active",
members:[
{
tags: [tag],
email_address: email,
status: "subscribed",
merge_fields: {
FNAME: firstName,
LNAME: lastName,
},
}
],

}

最新更新