Há um bom tempo que não utilizo mais o jQuery. Embora tenha sido uma ferramenta útil, especialmente para simplificar tarefas como o envio de solicitações Ajax do lado do servidor, porém agora não é mais necessário carregar um arquivo JavaScript tão extenso, especialmente para tarefas mais simples. Atualmente, prefiro empregar o XMLHttpRequest para envio de requisições, apesar das recomendações frequentes para adotar a função fetch. No entanto, estou confortável com minha abordagem atual. Sem mais delongas, vamos ao que interessa.
HTML:
PHP:
$assuntos = "";
foreach($_POST["assunto"] as $assunto) {
$assuntos .= "$assunto ";
}
$nome = $_POST["nome"];
$email = $_POST["email"];
echo "
$assuntos
Nome: $nome
Marca: $email
";
JavaScript:
var formit = document.querySelector("#formit");
var callback = document.getElementById("callback");
formit.addEventListener("submit", event => {
event.preventDefault();
var fData = new FormData();
var assuntos = document.querySelectorAll(".ckb");
for(var i = 0; i <= assuntos.length - 1; i++) {
if(assuntos[i].checked) {
fData.append('assunto[]', document.getElementById(assuntos[i].id).value);
}
}
fData.append('nome', document.querySelector("#nome").value);
fData.append('email', document.querySelector("#email").value);
var xhr = new XMLHttpRequest();
xhr.open("POST", "action.php");
xhr.onload = function () {
if (this.status == 200) {
callback.style.color = "green";
callback.innerHTML = this.response;
} else {
callback.style.color = "red";
callback.innerHTML = "Ocorreu algum erro.";
}
};
xhr.send(fData);
});