Estoy luchando para obtener mis datos de un formulario html en mySQL durante 2 días, ahora ...
Si bien resolví muchos problemas, estoy atascado con un objeto FormData (en mi humilde opinión) vacío. tengo un formulario
<form id="pricing"> ... <input id="fromDate" name="fromDate" value=""/> ... <input type="submit" value="Go!"/> </form>Los datos se transmitirán sin redirigir a una nueva página, por lo que elegí XMLHttpRequest, que también es compatible con navegadores obsoletos. El código es más o menos copiar y pegar de un tutorial.
const form = document.querySelector('#pricing'); // listen for submit even form.addEventListener('submit', (event) => { // disable default action event.preventDefault(); // configure a request const xhr = new XMLHttpRequest(); xhr.open('POST', 'forms/pricing.php'); // prepare form data let data = new FormData(form); // set headers xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); // send request xhr.send(data); console.log(data); // listen for `load` event xhr.onload = () => { console.log(xhr.responseText); } }); Se llega a la página de inicio de forms/pricing.php , almacena con éxito algunos valores fijos (ingresados para la depuración) en la base de datos al hacer clic en "ir". Sin embargo, la $_POST parece estar vacía, mi objeto de datos se almacena a través de PDO
'fromDate' => isset($_POST["fromDate"]) ? $_POST["fromDate"] : '1', almacena '1' y no $_POST["fromDate"] . Y también en la salida de la consola de console.log(data); (donde data es FormData para POST, como se ve en el segundo fragmento) No puedo encontrar ninguno de mis datos.
¿Qué estoy haciendo mal?