Foros del Web » Programando para Internet » Javascript »

crear boton dentro de form y que actue por ajax ignorandolo

Estas en el tema de crear boton dentro de form y que actue por ajax ignorandolo en el foro de Javascript en Foros del Web. Hola amigos vengo por haca con una super duda(no se si se puede hacer) no he encontrado documentación al respecto, lo que pasa es que ...
  #1 (permalink)  
Antiguo 21/02/2014, 21:10
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 11 meses
Puntos: 28
crear boton dentro de form y que actue por ajax ignorandolo

Hola amigos vengo por haca con una super duda(no se si se puede hacer) no he encontrado documentación al respecto, lo que pasa es que tengo un diseño HTML ya terminado, en el una serie de botones para enviar formularios, pero sucede de que ahora me doy cuenta de que dichos botones actuan sobre el form.

la idea de estos botones es de enviar a los usuarios a diferentes lugares dentro de la pagina web. pero el metodo es POST

formulario de login:

Código HTML:
Ver original
  1. <form method="post" action="" class="loging">
  2.                                  Contenido del formulario es required
  3.             <div><button type="submit" class="lbutton">Login &raquo;</button></div>
  4.             <div><button type="submit" name="visita" value="3" class="lbutton">Registrarse &raquo;</button></div>
  5.             <div><button type="submit" name="visita" value="4" class="lbutton">Visitar Web &raquo;</button></div>
  6.         </form>

intente solucionarlo con un eventoo OnClick:

Código PHP:
Ver original
  1. <input type="button" onClick="location.href='?visita=3'" name="button" class="button" value="Perfil de Usuario">

pero no me trabaja por que sigue estando dentro del mismo form y por que esto lo envia por URL y no porPOST.

Como conocerán del tema en un formulario login el usuario y contraseña es required, entonces al pulsar en : Registrarse o Visitar Web, se bloqueara y dira que no se puede por que los campos estan vacios aunque no tienen nada que ver con el redireccionamiento.

mi pregunta:

Es posible hacer que estos botones mediante AJAX, creen un form diferente he ignoren el form padre al que pertenece. envien por POST sus name values para ser procesados ???

gracias por su ayuda.
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB

Última edición por arcanisgk122; 21/02/2014 a las 21:19
  #2 (permalink)  
Antiguo 21/02/2014, 21:36
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: crear boton dentro de form y que actue por ajax ignorandolo

Claro. Con un ejemplo se entenderá mejor.

Código HTML:
Ver original
  1. <button class = "enviar" value = 1>UNO</button>
  2. <button class = "enviar" value = 2>DOS</button>
  3. <button class = "enviar" value = 3>TRES</button>
  4.  
  5. <div id = "salida"></div>

Código Javascript:
Ver original
  1. var botones = document.getElementsByClassName("enviar"),
  2.     total = botones.length,
  3.     salida = document.getElementById("salida");
  4.  
  5. for (i = 0; i < total; i++) {
  6.     botones[i].addEventListener("click", function(){
  7.         var ajax = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP") || new ActiveXObject("Msxml2.XMLHTTP");
  8.  
  9.         ajax.open("POST", "ejemplo.php", true);
  10.         ajax.onreadystatechange = function(){
  11.             if (ajax.readyState == 4) {
  12.                 switch (ajax.status) {
  13.                     case 200:
  14.                         salida.innerHTML = ajax.responseText;    
  15.                     break;
  16.  
  17.                     case 404:
  18.                         salida.innerHTML = "La dirección brindada no existe";
  19.                     break;
  20.  
  21.                     default:
  22.                         salida.innerHTML = ajax.status;
  23.                     break;
  24.                 }
  25.             }    
  26.         };
  27.  
  28.         ajax.send(this.value);
  29.     }, false);
  30. }

Cada vez que se pulse uno de los botones, se ejecutará la petición asíncrona (AJAX), enviando el valor del botón pulsado hacia ejemplo.php. La respuesta de dicha petición se mostrará en el Div de Id "salida".

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; 21/02/2014 a las 21:52
  #3 (permalink)  
Antiguo 21/02/2014, 21:59
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 11 meses
Puntos: 28
Respuesta: crear boton dentro de form y que actue por ajax ignorandolo

gracias amigo pero no se como implementar tu codigo en lo que necesito hacer.

el detalles esta en que no necesito re-escribir nada del DOM de forma asincrona...

necesito que un boton en un form hijo se ejecute ignorando al form padre y al final refreque la pagina neviado el valor del boton por POST

algo como

Código HTML:
Ver original
  1. <form padre>
  2.     Contenido del Form campos required
  3.     Boton 1 enviar form padre
  4.     <form hijo>
  5.         Boton 2 y boton 3 que ignoren el form padre en evento Onclick  refrescar y envia por POST valor numerico = 3
  6.     </form>
  7. </form>

Gracias por tu ayuda pero ando en el rumbo siquiente:


Código Javascript:
Ver original
  1. <input type="button" onClick="ignora form padre, refrescar y enviar por post variable visita=3";>
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #4 (permalink)  
Antiguo 21/02/2014, 22:12
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: crear boton dentro de form y que actue por ajax ignorandolo

Te puse el ejemplo con Ajax porque dijiste esto:

Cita:
Iniciado por arcanisgk122 Ver Mensaje
Es posible hacer que estos botones mediante AJAX...
No me parece adecuado lo que buscas hacer, pues si ya tienes un botón en el formulario padre para realizar el envío de los datos, el formulario hijo está de más, debes tenerlo fuera del formulario padre y enviarlo por su cuenta.

Código HTML:
Ver original
  1. <form padre method = "post">
  2.     Contenido del Form campos required
  3.     Boton enviar form padre
  4. </form>
  5.  
  6. <form hijo1 method = "post">
  7.     <input oculto con valor 2 />
  8.     Boton enviar form hijo 1
  9. </form>
  10.  
  11. <form hijo2 method = "post">
  12.     <input oculto con valor 3 />
  13.     Boton enviar form hijo 2
  14. </form>

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; 21/02/2014 a las 22:22
  #5 (permalink)  
Antiguo 22/02/2014, 10:57
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 11 meses
Puntos: 28
Respuesta: crear boton dentro de form y que actue por ajax ignorandolo

gracias tenias razon en algo y tube que separalo ya que por ajax no le encontr solucion lo que si tube que hacer fue ocultar en un Div el contenido del form y sus botones y hacer aparecer otro div con el boton que necesitaba... gracias de todas formas...
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #6 (permalink)  
Antiguo 22/02/2014, 11:43
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: crear boton dentro de form y que actue por ajax ignorandolo

En realidad no era necesario que ocultes el form, bastaba con que el campo que contuviera el valor a enviar fuera de tipo hidden.

Código HTML:
Ver original
  1. <form method = "post">
  2.     <input type = "hidden" name = "visita" value = "3" />
  3.     <input type = "submit" value = "Enviar" />
  4. </form>

Así es como se vería: http://jsbin.com/xixevage/1

Pero si dices que ya resolviste tu problema, pues enhorabuena.

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
  #7 (permalink)  
Antiguo 22/02/2014, 12:45
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 11 meses
Puntos: 28
Respuesta: crear boton dentro de form y que actue por ajax ignorandolo

es lo mismo jajaja si le palico mendiante un scrip el hiden en ciertas ocaciones
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB

Etiquetas: ajax, boton, form, formulario, html
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 20:56.