Enviar todos los campos de un formulario con AJAX mediante POST

1 - - 25/05/2006 00:00:00

Hasta ahora había utilizado el objeto XMLHttpRequest(); creando funciones que usaban GET para pasar la información. Pero en el caso de formularios, y sobre todo debido a que el envio de información puede superar la cantidad que puede enviarse a través de GET, es útil usar POST. Buscando información sobre el envio de formularios mediante POST con AJAX, me encontraba con que se realizaban envios de uno o dos campos pero nunca de todo un formulario. Yo, para el proyecto que estoy realizando necesitaba crear una función que fuese capaz de enviar toda la información contenida en un formulario a un ASP y que este grabase en una base de datos. Dándole vueltas al asunto, al final cree esta función, que pasándole la url (url) que procesará los datos enviados y el id (formid) del formulario que se desea enviar, pasa el nombre y el valor de todos los campos mediante POST. 'Peticion' es el nombre de la instancia de XMLHttpRequest();. Para más información sobre la creación de XMLHttpRequest(); puedes consultar tutoriales  anteriores de este blog.

function enviarFormulario(url, formid){
         var Formulario = document.getElementById(formid);
         var longitudFormulario = Formulario.elements.length;
         var cadenaFormulario = ""
         var sepCampos
         sepCampos = ""
         for (var i=0; i <= Formulario.elements.length-1;i++) {
         cadenaFormulario += sepCampos+Formulario.elements[i].name+'='+encodeURI(Formulario.elements[i].value);
         sepCampos="&";
}
  peticion.open("POST", url, true);
  peticion.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=ISO-8859-1');
  peticion.onreadystatechange = function () {
  if (peticion.readyState == 4) {
     document.getElementById('Ficha').innerHTML = "Los datos han sido enviados correctamente";
}
}
peticion.send(cadenaFormulario);
}

Si alguien tiene alguna otra forma de hacerlo, me gustaría conocerla. Puede indicarmelo al correo y lo compartiría con todos en el blog.

Comentarios

Manuel05/05/2012 12:42:18

1
Deberias haber publicado el ejemplo completo porque no logré hacerlo, pero sería de mucha utilidad

Deja tu comentario

  • El comentario debe estar relacionado con el contenido de la entrada.
  • Comentarios ofensivos, con spam o con lenguaje inapropiado serán eliminados.

captcha