Te traemos el arreglo a este atasco, al menos eso esperamos. Si tienes preguntas coméntalo, que sin dudarlo te responderemos
Solución:
Obtener datos completos del formulario como array y json lo stringifican.
var formData = JSON.stringify($("#myForm").serializeArray());
Puedes usarlo más tarde en ajax. O si no está usando ajax; póngalo en un área de texto oculta y páselo al servidor. Si estos datos se pasan como json string a través de datos de formulario normales, entonces debe decodificarlo usando json_decode. A continuación, obtendrá todos los datos en un array.
$.ajax(
type: "POST",
url: "serverUrl",
data: formData,
success: function(),
dataType: "json",
contentType : "application/json"
);
HTML no proporciona ninguna forma de generar JSON a partir de datos de formulario.
Si realmente desea manejarlo desde el cliente, entonces tendría que recurrir al uso de JavaScript para:
- recopile sus datos del formulario a través de DOM
- organizarlo en un objeto o array
- generar JSON con JSON.stringify
- PUBLICAR con XMLHttpRequest
Probablemente sea mejor que te quedes con application/x-www-form-urlencoded
datos y procesarlos en el servidor en lugar de JSON. Su formulario no tiene ninguna jerarquía complicada que se beneficiaría de una estructura de datos JSON.
Actualización en respuesta a una importante reescritura de la pregunta…
- Tu JS no tiene
readystatechange
controlador, por lo que no hace nada con la respuesta - Activa el JS cuando se hace clic en el botón Enviar sin cancelar el comportamiento predeterminado. El navegador enviará el formulario (de la manera habitual) tan pronto como se complete la función JS.
Puedes intentar algo como:
test
Si eres capaz, tienes la habilidad dejar una noticia acerca de qué te ha parecido esta crónica.