Foros del Web » Programando para Internet » PHP »

enviar formulario sabiendo nombre del boton

Estas en el tema de enviar formulario sabiendo nombre del boton en el foro de PHP en Foros del Web. Hola tengo un formulario que va a tener varios botones que nunca van a llamarse igual. La cuestión es enviar el formulario sabiendo el nombre ...
  #1 (permalink)  
Antiguo 28/04/2015, 12:22
 
Fecha de Ingreso: abril-2015
Mensajes: 25
Antigüedad: 9 años
Puntos: 0
Pregunta enviar formulario sabiendo nombre del boton

Hola tengo un formulario que va a tener varios botones que nunca van a llamarse igual. La cuestión es enviar el formulario sabiendo el nombre de con que botón se ha enviado. Habría alguna forma de poner en onclick en el botón que a parte de que se envíen los campos del formulario se quede en un post o algo el nombre del botón de donde se ha enviado.
Gracias de antemano
  #2 (permalink)  
Antiguo 28/04/2015, 13:54
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: enviar formulario sabiendo nombre del boton

No tiene sentido usar Javascript para eso, los <input> también pueden usar un name que los identifique.

Es decir, dicho atributo no es exclusivo para capturar datos, igual sirve como identificador:

Código HTML:
Ver original
  1. <input type="submit" name="accion_1" value="A">
  2. <input type="submit" name="accion_2" value="B">

Eso es básico en términos de HTML, te sugiero revisar una referencia al respecto.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 28/04/2015, 14:16
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
Respuesta: enviar formulario sabiendo nombre del boton

Si pone onclick seria javascrip o jquery, pero tu cosulta la hiciste en PHP. Así que para saber con que boton enviaste sería:
Código PHP:
Ver original
  1. if($_POST['nombre_boton_1']){
  2.   //haces algo
  3. }
  4. if($_POST['nombre_boton_2']){
  5.   //haces algo
  6. }
El método con que lo recibas depende múcho si es GET o POST y por ahí tendrías que validarlo con isset(). pero básicamente asi obtienes el resultado.

Saludos
  #4 (permalink)  
Antiguo 28/04/2015, 15:25
 
Fecha de Ingreso: abril-2015
Mensajes: 25
Antigüedad: 9 años
Puntos: 0
Pregunta Respuesta: enviar formulario sabiendo nombre del boton

Hola. La he puesto en PHP por que aunque haya dado javascript quiero saber si hay algún método para saber el name del botón que se ha pinchado. Lo que me habéis escrito no vale ya que puede haber botones que vayan del botón_1 al botón_100 y eso salen varios aleatorios por eso quiero saber a la hora de enviar el formulario que input se ha pinchado saber el name ya sea con PHP o javascript. A ver si alguien me puede ayudar que me he quedado bloqueado con eso jaja
  #5 (permalink)  
Antiguo 28/04/2015, 15:38
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: enviar formulario sabiendo nombre del boton

Pues la solución ahí está: debes usar el name para poder identificar tus botones.

Si no lo quieres hacer con PHP (aunque es tema de HTML en sí) entonces no veo por qué preguntar aquí.

Cita:
Lo que me habéis escrito no vale ya que puede haber botones que vayan del botón_1 al botón_100 y eso salen varios aleatorios por eso quiero saber a la hora de enviar el formulario que input se ha pinchado saber el name ya sea con PHP o javascript
El punto, es que no necesitas saber, el name se envía siempre, es un comportamiento natural del HTML.

Aún tengas 1000 botones al presionar un botón se estará enviando sólo el botón presionado y los demás botones se ignoran.

En fin, si tampoco explicas la razón de "porque no va a servirte" entonces creo que el experto eres tú, ¿por qué abres un tema entonces?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 28/04/2015, 15:44
 
Fecha de Ingreso: abril-2015
Mensajes: 25
Antigüedad: 9 años
Puntos: 0
Respuesta: enviar formulario sabiendo nombre del boton

Si pregunto sera por que no se vaya. Ya se que se envían los botones pero si no me se el name de ese botón que es lo que quiero saber malamente podre recogerlo. Ahí esta la duda
  #7 (permalink)  
Antiguo 28/04/2015, 15:48
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: enviar formulario sabiendo nombre del boton

Cita:
Iniciado por adriancarcamo Ver Mensaje
Si pregunto sera por que no se vaya. Ya se que se envían los botones pero si no me se el name de ese botón que es lo que quiero saber malamente podre recogerlo. Ahí esta la duda
Entonces tu pregunta no tenía nada con "enviar" sino más bien con "recibir" dicho dato, que no es lo mismo.

Y para eso, bueno, igual podría agrupar todos los botones usando la notación de array.

Ahí está la clave: sólo tendrá un elemento, y es fácil conocer la clave usando key():
Código HTML:
Ver original
  1. <input name="submit[nombre_desconocido]" value="OK">

Y con PHP:
Código PHP:
Ver original
  1. echo key($_POST['submit']); // nombre_desconocido
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 28/04/2015, 15:56
 
Fecha de Ingreso: abril-2015
Mensajes: 25
Antigüedad: 9 años
Puntos: 0
Respuesta: enviar formulario sabiendo nombre del boton

Vale muchas gracias mañana cuando saque un rato lo pruebo y te comento a ver si me sirve. Un saludo
  #9 (permalink)  
Antiguo 29/04/2015, 06:39
 
Fecha de Ingreso: abril-2015
Mensajes: 25
Antigüedad: 9 años
Puntos: 0
Respuesta: enviar formulario sabiendo nombre del boton

Hola de nuevo, me da error, os pongo el error que me da a ver si podeis sacar de donde viene: Warning: key() expects parameter 1 to be array, null given in...

Un saludo y gracias
  #10 (permalink)  
Antiguo 29/04/2015, 07:18
 
Fecha de Ingreso: enero-2015
Mensajes: 35
Antigüedad: 9 años, 4 meses
Puntos: 1
Respuesta: enviar formulario sabiendo nombre del boton

Veamos si interprete, lo que necesitas es que se envie tu form desde el evento click de un o una paleta de botones que constantemente cambian de nombre?, para eso cada vez que envias tu form debes darle onClick='document.formname.submit()' a cada boton para que cualquiera de ellos envie el formulario, pero como te dijeron corresponde al foro javascript.

obs formname es el nombre del formulario. <form name=
  #11 (permalink)  
Antiguo 29/04/2015, 07:23
 
Fecha de Ingreso: abril-2015
Mensajes: 25
Antigüedad: 9 años
Puntos: 0
Respuesta: enviar formulario sabiendo nombre del boton

Hola, ya te digo que lo he puesto aquí por que me da igual que el formulario se envíe con el onclick o poniendo directamente los botones dentro del form y type submit, me da absolutamente igual, esa no es la cosa, van a haber muchos botones aleatorios en forma de imagen, cada imagen va a tener un id de imagen por lo tanto cada boton va a tener un name con el id de imagen, eso ya esta todo echo, ahora bien, cuando yo envíe el formulario con cualquier botón si por ejemplo aprieto para enviar el formulario en el botón que se llama "boton100" que a parte de recibir los input que por POST que tengo en el formulario quisiera saber el nombre del botón con el que he enviado el formulario, me es igual que se haga con javascript que con cualquier cosa solo que no se me ocurre como hacerlo y he probado muchas cosas pero no consigo, a ver si ahora me he explicado mejor jjaja. Un saludo
  #12 (permalink)  
Antiguo 29/04/2015, 07:34
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: enviar formulario sabiendo nombre del boton

Cita:
Iniciado por adriancarcamo Ver Mensaje
Hola de nuevo, me da error, os pongo el error que me da a ver si podeis sacar de donde viene: Warning: key() expects parameter 1 to be array, null given in...

Un saludo y gracias
No es que podamos "sacar de donde viene" con sólo leer el error, adivinos no somos.

¿Podrías mostrar cómo son los botones de tu formulario, además del código que te da error?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 29/04/2015, 07:48
 
Fecha de Ingreso: enero-2015
Mensajes: 35
Antigüedad: 9 años, 4 meses
Puntos: 1
Respuesta: enviar formulario sabiendo nombre del boton

Bueno no lei la parte que decia que debes saber que boton se presiono, particularmente no me interesa si preguntas sobre javascript en el foro de php pero no creo que el administrador piense igual!!

<form name=form ...
...
<input type='buton' name='ax154' onClick='document.form.submit()'>
<button name='a48xx' onClick='document.form.submit()'></button>
<input type='submit' name='rqr' value='Envia'>
</form>


//php
ahora para saber que boton fue el que ocasiono el envio yo utilizaría $_REQUEST
con un bucle recorrería y el elemento obtenido sería el boton que causo el envio
  #14 (permalink)  
Antiguo 29/04/2015, 08:09
 
Fecha de Ingreso: abril-2015
Mensajes: 25
Antigüedad: 9 años
Puntos: 0
Respuesta: enviar formulario sabiendo nombre del boton

aqui genero los botones:
Código:
$querybanners=mysql_query($selectbanners,$conexion);
while ($res = mysql_fetch_array($querybanners, MYSQL_ASSOC)) { ?>
	<a onclick="document.forms['quiniela'].submit();" name="submit[nombre_desconocido]"><img src="admin/images/banners/<?php echo $res['urlimagen'];?>"></a>
<?php }?>
Y aqui lo recojo con todos los post:

$boton= key($_POST['submit']); // nombre_desconocido


El error me lo da cuando recojo la variable key.

Un saludo!
  #15 (permalink)  
Antiguo 29/04/2015, 08:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: enviar formulario sabiendo nombre del boton

Pues lo estás haciendo muy mal.

No puedes usar un enlace como un botón, eso no es compatible.

Lo correcto, si se trata de usar una imagen es usar un <input> de type image:

Código HTML:
Ver original
  1. <!-- MAL -->
  2. <a onclick="document.forms['quiniela'].submit();" name="submit[nombre_desconocido]"><img src="admin/images/banners/<?php echo $res['urlimagen'];?>"></a>
  3.  
  4. <!-- BIEN -->
  5. <input type="image" name="submit[nombre_desconocido]" src="admin/images/banners/<?php echo $res['urlimagen'];?>">

Ese es el camino correcto, lo demás que intentas son soluciones endebles, sin fundamentos y además inútiles.

Por mucho que uses un enlace y Javascript jamás va a funcionar el atributo name, porque dicho atributo sirve únicamente en elementos <input> y nada más.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #16 (permalink)  
Antiguo 29/04/2015, 08:31
 
Fecha de Ingreso: abril-2015
Mensajes: 25
Antigüedad: 9 años
Puntos: 0
Respuesta: enviar formulario sabiendo nombre del boton

¡Eres un fenomeno!,
como no había tratado nunca con algo así, muchas veces los botones los hacia con enlaces, claro por que no necesitaba utilizar el name para nada, ahora que lo necesitaba la mala costumbre que tengo de utilizar enlaces me ha fallado jaja.
Muchas gracias!
Un saludo!
  #17 (permalink)  
Antiguo 29/04/2015, 08:39
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: enviar formulario sabiendo nombre del boton

Hola:

Los input image tienen la característica de enviar las coordenadas de la imagen donde se ha pinchado, si ese dato no tiene importancia los envíos podrían hacerse en vez de desde un tag input, desde un tag button, y la imagen en su interior...

El nombre del botón debería ser solo uno, y discriminarlo por su valor...

<button type="submit" name="envio" value="boton_1"><img src="..." /></button>

Si no se le pone el value envía el equivalente al innerHTML de javascript (creo que es lo mismo en todos los navegadores)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Etiquetas: boton, formulario, nombre
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 03:10.