Foros del Web » Programando para Internet » Javascript »

Dos botones submit. ¿Cual ha sido presionado?

Estas en el tema de Dos botones submit. ¿Cual ha sido presionado? en el foro de Javascript en Foros del Web. Buenas. Aqui tengo un par de cuestiones para ustedes: 1- Si tengo en un form dos botones submit: ¿como se cual de los dos es ...
  #1 (permalink)  
Antiguo 18/02/2005, 09:53
Avatar de sedinho  
Fecha de Ingreso: marzo-2003
Mensajes: 91
Antigüedad: 21 años, 1 mes
Puntos: 0
Dos botones submit. ¿Cual ha sido presionado?

Buenas. Aqui tengo un par de cuestiones para ustedes:

1- Si tengo en un form dos botones submit: ¿como se cual de los dos es el que genera el evento de enviar?
Supongo que habra que poner una funcion en el evento onSubmit, pero no se como sacar luego que boton es el que ha sido presionado.

2- ¿Seria correcto definir en un formulario dos botones submit pero con el mismo nombre y distintos valores?. Es decir:
<input type="submit" name="operacion" value="eliminar">
<input type="submit" name="operacion" value="modificar">

Lo digo porque ese formulario enviaria los datos a un archivo php y desde este con preguntar cual es el valor de la variable "operacion" me dice directamente si se ha pulsado "eliminar" o "modificar".
¿Seria mas correcto dar nombres distintos a esos submit y luego preguntar en el archivo php que variable esta definida (es decir, que boton se ha pulsado) con la funcion ISSET?


Nada mas.
Muchas gracias.
  #2 (permalink)  
Antiguo 18/02/2005, 11:37
Avatar de lalogrosz  
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 339
Antigüedad: 22 años
Puntos: 6
Solucion

Código HTML:
<SCRIPT LANGUAGE="JavaScript">
        function Nom(form,boton){
            form.botPress.value = boton;
            form.submit();
        }

</script>

  <form>
  <input type="hidden" name="botPress">
  <input type="button" name="operacion" value="eliminar" onclick="Nom(this.form,'eliminar')">
  <input type="button" name="operacion" value="modificar" onclick="Nom(this.form,'modificar')">

  </form> 
Los botones no son submit, y se envia luego que le asigna el valor al hidden.

Suerte
  #3 (permalink)  
Antiguo 21/02/2005, 04:38
Avatar de sedinho  
Fecha de Ingreso: marzo-2003
Mensajes: 91
Antigüedad: 21 años, 1 mes
Puntos: 0
Gracias por la respuesta, pero me gustaria saber si hay alguna otra forma (alguna funcion o evento que determine que boton es el que ha sido pulsado), ya que hacer lo que plnateas seria añadir mas lineas de codigo a algo que ya tiene bastantes y me gustaria optimizar todo lo posible.

Ademas, ¿alguien puede responderme a la parte dos de mi pregunta?

Muchas gracias.
  #4 (permalink)  
Antiguo 21/02/2005, 11:49
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 3 meses
Puntos: 6
Vaya, el mensaje de la logrosz me ha sido tremendamente útil (para algunas cosillas).

Respecto a tu pregunta 2, me imagino que ambas formas son igualmente posibles, y dará igual (o casi) cuál elijas. Tampoco es necesario tratar de optimizar tanto tanto la página... a veces nos pasamos, y nos olvidamos de que los ordenadores de hoy tienen potencia suficiente, y hasta podríamos duplicar el código fuente de una página (dependiendo del caso) sin notar diferencia apreciable de velocidad (otra cosa es que, al igual que yo, quieras saber un modo directo por pura curiosidad, que siempre viene bien).
  #5 (permalink)  
Antiguo 21/02/2005, 12:22
Avatar de sedinho  
Fecha de Ingreso: marzo-2003
Mensajes: 91
Antigüedad: 21 años, 1 mes
Puntos: 0
Al final he optado por esto. A ver que os parece:

<form name="formu" action="a.php" method="post">
<input type="text" name="nombre">

<input type="hidden" name="oculto">

<input type="button" name="opcion1" value="opcion1" oClick="mifuncion('opcion1')">
<input type="button" name="opcion2" value="opcion2" oClick="mifuncion('opcion2')">
</form>

EN JAVASCRIPT:

function mifuncion(tipo)
{
if (tipo=="opcion1")
{
document.forms.formu.oculto.valu="opcion1";
document.forms.formu.action="otrophp.php" //si deseamos que haga submit a otro archivo
document.forms.formu.submit();
}
else if (tipo=="opcion2")
{
document.forms.formu.oculto.valu="opcion2";
document.forms.formu.action="otrophp2.php" //si deseamos que haga submit a otro archivo
document.forms.formu.submit();
}
}


Asi puedo pasar la variable oculto con un valor u otro en funcion de que boton ha sido pulsado.

Saludos y gracias por ayudar.
  #6 (permalink)  
Antiguo 21/02/2005, 12:28
Avatar de lalogrosz  
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 339
Antigüedad: 22 años
Puntos: 6
eh...........me parece que es casi como te dije, pero con un poco mas de lineas ...jjaja...Ok...anda barbaro, pero no querias que sea mas cortito ?
  #7 (permalink)  
Antiguo 25/02/2005, 04:21
Avatar de sedinho  
Fecha de Ingreso: marzo-2003
Mensajes: 91
Antigüedad: 21 años, 1 mes
Puntos: 0
Pues tienes razon.

Gracias de nuevo
  #8 (permalink)  
Antiguo 22/09/2010, 15:27
 
Fecha de Ingreso: septiembre-2010
Mensajes: 2
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Solucion

Cita:
Iniciado por lalogrosz Ver Mensaje
Código HTML:
<SCRIPT LANGUAGE="JavaScript">
        function Nom(form,boton){
            form.botPress.value = boton;
            form.submit();
        }

</script>

  <form>
  <input type="hidden" name="botPress">
  <input type="button" name="operacion" value="eliminar" onclick="Nom(this.form,'eliminar')">
  <input type="button" name="operacion" value="modificar" onclick="Nom(this.form,'modificar')">

  </form> 
Los botones no son submit, y se envia luego que le asigna el valor al hidden.

Suerte


me fue de tanta ayuda tu comment que hasta me registre para darte las gracias.... gracias jejeje
  #9 (permalink)  
Antiguo 22/09/2010, 15:54
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 11 meses
Puntos: 310
Respuesta: Dos botones submit. ¿Cual ha sido presionado?

Se supone que no podría postear porque este tema es antiguo, pero ahora ya no lo es.
Vamos a ir por partes:
  1. En los temas que son más antiguos de 6 meses no se puede postear, y este es de hace 5 años; si querías agradecérselo, crea un nuevo tema y enlaza a este
  2. Los formularios se envían con un submit, no un button ni un enlace, aunque técnicamente sea posible.
  3. Si quieres saber en qué botón se hizo click, puedes hacerlo igual en el evento onclick del submit y darle el valor a un campo oculto, pero no envíes el formulario con JS.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #10 (permalink)  
Antiguo 24/09/2014, 13:41
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: Dos botones submit. ¿Cual ha sido presionado?

Código PHP:
<form action="" id="unid" onclick="alert(document.activeElement.name); return false;"><input type="text" name="t" /> <input type="submit" value="b1" name="b1" /> <input type="submit" value="b2" name="b2" /></form
Pero falla con OPERA y SAFARI

Alguien tiene un código que sirva para todos ?
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 10:29.