所以我试图通过API Build 一个偏好中心,到目前为止我设法获取信息并将其映射到一个复选框,最后一步是在检查复选框时发送一个帖子或删除请求 .
因此,如果正在检查或取消选中该复选框并将该ID放入请求网址的间隙中,我必须以某种方式获取当前元素 .
或许我必须以不同的方式做到这一点 .
如果有人可以帮助我,我真的很感激,因为这是最后一点代码然后它准备好了 .
var geturl = "https://api.sendgrid.com/v3/asm/suppressions/ibrarr2000@gmail.com";
var token = "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";
let headers = new Headers();
let myData = {};
headers.append('Authorization', 'Bearer ' + token);
//supressionids = new Array();
var supressionids = [];
fetch(geturl, {
method: 'GET',
headers: headers,
}).then(function (res) {
return res.json();
}).then(function (data) {
myData = data;
runCode(data);
});
function buildSelect(d) {
let select = document.createElement('form');
d.suppressions.forEach(function (item) {
let label = document.createElement('label');
let option = document.createElement('input');
option.value = item.suppressed;
option.type = "checkbox";
option.setAttribute("onclick","task(event);");
option.id = item.id;
option.classList = "subbox";
option.textContent = item.name;
label.textContent = item.name;
select.appendChild(label);
select.appendChild(option);
supressionids.push(item.id);
let br = document.createElement('br');
select.appendChild(br);
if(JSON.stringify(item.suppressed) == 'false'){
option.setAttribute("checked", "checked");
}
});
document.querySelector('body').appendChild(select);
}
function runCode(data){
buildSelect(data);
console.log(supressionids);
}
function task(e) {
if(e.target.checked){
fetch("https://api.sendgrid.com/v3/asm/groups/"+ supressionids +"/suppressions/ibrarr2000@gmail.com", {
method: 'DELETE',
headers: headers,
});
} else {
fetch("https://api.sendgrid.com/v3/asm/groups/"+ supressionids +"/suppressions", {
method: 'POST',
body: JSON.stringify({ "recipient_emails": [ "ibrarr2000@gmail.com" ] }),
headers: headers,
});
}
}