Zdroj: https://gist.github.com/jesperorb/a6c12f7d4418a167ea4b3454d4f8fb61

Zde popíšu, jak pomocí AJAXu poslat data z HTML formuláře PHPčkovému skriptu, tam je zpracovat a pak ta data poslat (a na straně AJAXu je dostat zpátky).

Mám klasický formulář v HTML a trik je v tom, že pro odeslání dat po stisknutí submit tlačítka nepoužiji PHP soubor přímo v action="handle_form.php", ale v JS souboru nasadím eventListener, který zavolá AJAXovou funkci, která vyřeší komunikaci se serverem (PHPčkem).

const form = document.getElementById('exampleForm');
formBtn.addEventListener('click', function(event) {  
    event.preventDefault();  
 
    const formattedFormData = new FormData(form);   
    postData(formattedFormData);
});
 
async function postData(formattedFormData) {
	const response = await fetch('handle_form.php',{
        method: 'POST',
        body: formattedFormData
    });
 
	const data = await response.text(); // pokud PHPčko echuje, či print_r()uje text
	const data = await response.json(); // pokud PHPčko vrací JSON, echo json_encode()
 
	/* nějak zprocesovat data */
}

Ke kódu: FormData - k posílání párů key/value přes XMLHttpRequest

// lze vytvářet i takhle
const formattedFormData = {
	username: this.username.value,
	favorite_number: this.favorite_number.value
}

V PHPčku pak odchytávám proměnné jako klasicky $_POST['name_of_the_input']