Por el mensaje de error, supongo que no reemplazaste el
id
del ejemplo que te dio
GusGarsaky por el de tu formulario. Eso es lo que ocurre cuando solo se limita a copiar y pegar en lugar de analizar y adaptar lo que te dan a lo que necesitas.
Como opción al envío de los datos utiliza
GusGarsaky en su ejemplo, puedes usar un array y solo juntarías los valores con el método
.join()
y un
&
como unión.
Código Javascript
:
Ver originalvar data = [];
data.push(
"nombre" + "=" + document.querySelector("#txtname").value,
"apellido" + "=" + document.querySelector("#txtlastname").value,
"dni" + "=" + document.querySelector("#txtdni").value
);
//Y en el envío de los datos con el método .send()
xhr.send(data.join("&"));
También podrías enviar un objeto literal, como lo hace
GusGarsaky en su ejemplo aunque le faltó tomar los valores de los elementos, con la diferencia de que llegaría un objeto con sus valores, mientras que de la forma en la que lo hago, los valores llegan independientes unos de otros. En otras palabras, enviando un objeto, tendrías que ingresar al objeto para poder tomar los valores, mientras que de la otra forma, los puedes tomar directamente con un
$_POST['nombre']
.
Cualquiera de ambas formas es buena, aunque si optas por la primera, te recomiendo
parsear el objeto literal a JSON con el método
JSON.stringify()
y tan solo tendrías que decodificarlo en el archivo PHP con la función
json_decode()
.
Saludos