Foros del Web » Programando para Internet » Javascript »

Dos Formulario con Ajax

Estas en el tema de Dos Formulario con Ajax en el foro de Javascript en Foros del Web. No sé si el tema de ajax vaya en esta categoria, espero que si pues es javascript... la cosa es que quiero en una página ...
  #1 (permalink)  
Antiguo 21/07/2014, 23:49
 
Fecha de Ingreso: septiembre-2004
Ubicación: Guanatos
Mensajes: 43
Antigüedad: 19 años, 7 meses
Puntos: 0
Pregunta Dos Formulario con Ajax

No sé si el tema de ajax vaya en esta categoria, espero que si pues es javascript...
la cosa es que quiero en una página tener el formúlario de login y el formulario tambien para recordar usuario/clave por si la olvida, pero no sé como decirle al javascript que diferencie entre los formularios y actue en consecuencia... a lo mejor es muy básico, pero no sé como hacerlo... ??? tambien utilizo jquery. Gracias de antemano.
  #2 (permalink)  
Antiguo 22/07/2014, 01:04
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Dos Formulario con Ajax

Ten una función Ajax que puedas reutilizar y según sea el formulario cuyos datos vayan a ser procesados, ejecutas dicha función y le envías los datos respectivos.

Código Javascript:
Ver original
  1. var forms = document.getElementsByTagName("form"),
  2.     ajax = function(json){
  3.         var data = (function(){
  4.                 for (var i = 0, serialized = [], l = json.data.length; i < l; serialized.push(json.data[i].name + "=" + json.data[i].value), i++);
  5.                 return serialized.join("&");
  6.             })(),
  7.             xhr = window.XMLHttpRequest ?
  8.                   new XMLHttpRequest() :
  9.                   new ActiveXObject("Microsoft.XMLHTTP") ||
  10.                   new ActiveXObject("Msxml2.XMLHTTP");
  11.  
  12.         if (json.type.toUpperCase() == "GET"){
  13.             json.url += "?" + data;
  14.             data = null;
  15.         }
  16.  
  17.         xhr.open(json.type || "GET", json.url, true);
  18.         xhr.onreadystatechange = function(){
  19.             if (xhr.readyState == 4){
  20.                 switch (xhr.status){
  21.                     case 200:
  22.                         if (json.success) json.success(xhr.responseText);
  23.                         else console.log(xhr.responseText);
  24.                     break;
  25.  
  26.                     case 404: default:
  27.                         if (json.error) json.error(xhr.status);
  28.                         else console.log(xhr.status);
  29.                     break;
  30.                 }
  31.             }
  32.         };
  33.  
  34.         if (json.type.toUpperCase() == "POST")
  35.             xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  36.         xhr.send(data);
  37.     };
  38.  
  39. for (var i = 0, l = forms.length; i < l; i++){
  40.     forms[i].addEventListener("submit", function(event){
  41.         event.preventDefault(); //Cancelo el envío de los datos
  42.         ajax({
  43.             url: this.action, //Dirección hacia la cual se enviarán los datos
  44.             type: this.method, //Método elegido para el envío de datos
  45.             data: this.elements, //Los elementos del formulario
  46.             success: function(response){ //En caso de recibir una respuesta exitosa
  47.                 console.log(response);
  48.             },
  49.             error: function(textStatus){ //En caso de producirse un error
  50.                 console.log("Error: " + textStatus);
  51.             }
  52.         });
  53.     }, false);
  54. }

Lo que hace esta función es recibir un conjunto de datos agrupados en un objeto literal, al estilo del método Ajax de jQuery, luego, convierte al conjunto de datos del formulario en una query string y evalúa el tipo de método elegido; si es "GET", concatena la query string a la URL, caso contrario, la envía mediante el método send.

Si deseas, puedes ampliar su funcionalidad, esta función la creé para mis proyectos personales y aunque ahora es más amplia, esta es la estructura base.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 22/07/2014 a las 01:31 Razón: Mejora
  #3 (permalink)  
Antiguo 22/07/2014, 12:40
 
Fecha de Ingreso: septiembre-2004
Ubicación: Guanatos
Mensajes: 43
Antigüedad: 19 años, 7 meses
Puntos: 0
Respuesta: Dos Formulario con Ajax

Muchas Gracias Alexis, voy a tratar de implementar tu código a mi situación, me parece buena idea....

Etiquetas: ajax, formularios, jquery
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:33.