#javascript #json
#javascript #json
Вопрос:
Я создаю приложение электронной почты, которое отправляет сообщения другим людям. В настоящее время он работает, за исключением столбца получателей. Прямо сейчас я жестко запрограммировал электронное письмо в столбец получателей, чтобы оно заработало. Причина в том, что поле получателей должно быть массивом.
Каков наилучший способ передачи значения из пользовательской формы (несколько адресов, разделенных запятыми) в формат JSON?
Ниже показано, как у меня это сейчас.
Спасибо!
const element = document.getElementById('sendEmail');
element.addEventListener('click', function() {
fetch('/emails', {
method: 'POST',
body: JSON.stringify({
recipients: 'card51short@gmail.com',
subject: document.querySelector('#compose-subject').value,
body: document.querySelector('#compose-body').value
})
})
.then(response => response.json())
.then(result => {
// Print result
console.log(result);
});
});
}
Комментарии:
1. Разве вы не можете сделать это массивом напрямую?
{recipients: ['card51short@gmail.com','card51short2@gmail.com'], subject: document.querySelector('#compose-subject').value, body: document.querySelector('#compose-body').value }
2. значение похоже на строку, разделенную запятой, и вам нужно преобразовать это значение в массив?
3. Вопросы о «наилучшем способе» не подходят для переполнения стека. Лучший способ часто отличается в зависимости от вашего варианта использования. Неясно, с чем у вас возникли трудности. Вы не показали попытки передать список адресов электронной почты на серверную часть. Есть разные способы сделать это. Это может быть строка, разделенная запятой / пробелом, или это может быть массив и упомянутые первые два комментария
Ответ №1:
const element = document.getElementById('sendEmail');
element.addEventListener('click', function() {
const emailsFromForm = [ // NEW
document.querySelector('#email1').value, // NEW
document.querySelector('#email2').value // NEW
] // NEW
fetch('/emails', {
method: 'POST',
body: JSON.stringify({
recipients: emailsFromForm, // EDITED
subject: document.querySelector('#compose-subject').value,
body: document.querySelector('#compose-body').value
})
})
.then(response => response.json())
.then(result => {
// Print result
console.log(result);
});
});
}