Как нужно вызывать js-функцию, чтобы она брала данные с той формы которую отправили? И как передать через ajax или ID, или Class формы?
Модифицировать кнопку форм, чтобы она вызывала событие формы submit:
<button type="submit" class="button">Отправить</button>
Создадим один обработчик для всех форм:
async function sendForm(form) {
const data = {
name: form.querySelector("input[name='name']").value,
email: form.querySelector("input[name='email']").value,
phone: form.querySelector("input[name='phone']").value,
message: form.querySelector("textarea[name='message']").value,
formId: form.id,
formClass: form.className
}
try {
const response = await fetch('php/send.php', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify(data)
});
if(response.ok) {console.log('Success send form')}
else console.log('Error send form', response);
}
catch(error) {console.log('Error: ' + error.message)}
}
Вешаем слушателей на submit форм:
document.querySelector('#form1').addEventListener('submit', (e) => {
e.preventDefault();
sendForm(event.target);
});
document.querySelector('#form2').addEventListener('submit', (e) => {
e.preventDefault();
sendForm(event.target);
});
В зависимости от формы нужно в PHP-скрипте менять тему письма.
В php обработчике формы обрабатываем полученные данные от js (php у меня не очень):
$json = file_get_contents("php://input");
$data = json_decode($jsonData, true);
// get formId and formClass
$id = $data['formId'];
$class = $data['formClass'];
// this change type email message