Foros del Web » Programando para Internet » PHP »

2 botones a un mismo form

Estas en el tema de 2 botones a un mismo form en el foro de PHP en Foros del Web. Muy buenas a todos, tengo dos botones con un desplegable entre ellos. Ambos me hacen la misma función y esto no debería de ser así. ...
  #1 (permalink)  
Antiguo 24/11/2010, 03:05
 
Fecha de Ingreso: agosto-2010
Mensajes: 202
Antigüedad: 13 años, 8 meses
Puntos: 4
2 botones a un mismo form

Muy buenas a todos, tengo dos botones con un desplegable entre ellos. Ambos me hacen la misma función y esto no debería de ser así.

Código PHP:
Ver original
  1. <form action ="procesador.php" method="post">
  2. /*aquí irían una serie de instrucciones ...*/
  3.  
  4. /*este es el primer botón, que me debería mostrar una vista detallada del registro seleccionado*/
  5.  
  6. <input type="image" src="images/ver_tp.png" id="ver" name="ver" value="submit" align="center"/>
  7.  
  8.  
  9. <select name="opcion" size="1">
  10.  
  11. <!--option  value="" selected>--- Seleccione una opci&oacute;n --->
  12. <option value="nuevo" selected="">Nuevo</option>
  13. <option value="modificar">Modificar</option>
  14. <option value="borrar">Eliminar</option>
  15.  
  16. </select>
  17.  
  18. /*y aquí el botón que debería de ejecutarme las distintas acciones del combo*/
  19. <input type="image" src="images/ejecutar_tp.png" id="opcion" name='opcion' value="submit" align="center"/>
  20. </form>

en el formulario procesador recojo las variables de la siguiente forma
Código PHP:
Ver original
  1. $valor = $_POST['opcion'];
  2. $ver = $_POST['ver'];

Pero ambos botones me hacen la misma acción, es decir, si selecciono un registro y le doy a cualquier botón me visualiza el registro, y si selecciono una acción del combo, con cualquier botón puedo ejecutar dicha acción.

Quiero que estos botones sean independientes, es decir, ver sea solo para ver y ejecutar solo para el combo.

Saludos y espero vuestra ayuda chicos...

Gracias!
  #2 (permalink)  
Antiguo 24/11/2010, 03:31
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: 2 botones a un mismo form

pues el problema no se puede resolver con este código...

es natural que el código que procesa el formulario es el que tiene que ver, ya que las variables las recibes bien, pero... ¿como adivinar lo demás que haces?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 24/11/2010, 04:00
 
Fecha de Ingreso: agosto-2010
Mensajes: 202
Antigüedad: 13 años, 8 meses
Puntos: 4
Respuesta: 2 botones a un mismo form

Pues en el formulario procesador tengo este código de prueba:
Código PHP:
Ver original
  1. <?php
  2.  
  3. if($_POST['ver']=='ver')
  4. {
  5.     echo "soy el botón ver";
  6. }
  7.  
  8. else if($_POST['opcion']=='nuevo')
  9. {
  10.     echo "soy el botón nuevo";
  11. }
  12.  
  13. ?>
pero no funciona....
  #4 (permalink)  
Antiguo 24/11/2010, 04:15
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: 2 botones a un mismo form

Lo primero en un formulario es:

-No ponerle un nombre igual a dos campos, y eso es lo que haces con 'opcion' tanto en el combo como en el segundo boton.

Una solucion sería tener un campo oculto y rellenarlo con un valor justo antes de enviar el formulario.

Este seria el campo oculto:

<input type="hidden" name="campooculto" value="0">

Estos los nuevos botones:

<a href="javascript: document.nombreformulario.campooculto.value=1; document.nombreformulario.submit();">Ver</a>

<a href="javascript: document.nombreformulario.campooculto.value=2; document.nombreformulario.submit();">Ejecutar</a>


Y en la recogida de datos (en tu caso procesador.php) comprobariamos con:

if ($_POST['campooculto']==1) {
echo "Ver datos...";
} elseif
($_POST['campooculto']==2) {
echo "Ejecutar datos...";
}
  #5 (permalink)  
Antiguo 24/11/2010, 04:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: 2 botones a un mismo form

Vun, no es bueno depender mucho de Javascript, sea como sea aquí no compete dicha solución...

además se puede conseguir lo mismo con HTML+PHP tradicional...
Código HTML:
<form method="post">
<select name="accion">
  <option value="foo">bar</option>
  <option value="candy">does</option>
  <option value="nothing">else</option>
</select>
<input type="submit"/>
</form> 
en dado caso el valor que nos interesa es el de la acción, y no el del submit
Código PHP:
switch ($_POST['accion'])
{
  case 
'foo'; break;
  case 
'candy'; break;
  case 
'nothing'; break;
  default; break;

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 24/11/2010, 04:32
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: 2 botones a un mismo form

Hola:

Los input type="image" envían las coordenadas de donde se pincha en la imagen, y no todos los navegadores envían a la vez el "value", así que tal vez tu código funcione solo en algunos navegadores...

Además, con el mismo nombre no puedes poner varios controles, a no ser que pretendas tratarlos como un array; y en tal caso, ese nombre debería acabar con un juego de corchetes []...

Mi sugerencia es que en vez de usar imágenes como botones submit, uses botones (tag button), y controlar el aspecto con estilos.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 24/11/2010, 06:13
 
Fecha de Ingreso: agosto-2010
Mensajes: 202
Antigüedad: 13 años, 8 meses
Puntos: 4
Respuesta: 2 botones a un mismo form

Muchas gracias caricatos, cuando creía que lo tenía todo medio solucionado, como siempre, al probrarlo en ie 8 un botón no funcionaba, en el resto de navegadores si.

He probado el button con una imagen de fondo pero los bordes no se pueden quitar y darle el mismo aspecto que a los type image verdad??

gracias a todos, saludos!!!!
  #8 (permalink)  
Antiguo 24/11/2010, 06:15
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: 2 botones a un mismo form

Cita:
Iniciado por edgar4615 Ver Mensaje
He probado el button con una imagen de fondo pero los bordes no se pueden quitar y darle el mismo aspecto que a los type image verdad??
claro que se puede!!

solo usa la propiedad CSS border para eliminar dichos bordes... (:
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 24/11/2010, 06:16
 
Fecha de Ingreso: agosto-2010
Mensajes: 202
Antigüedad: 13 años, 8 meses
Puntos: 4
Respuesta: 2 botones a un mismo form

si es verdad ya probé el input type buttom class y defines la clase correspondiente....

Gracias de nuevo chicos!!!
  #10 (permalink)  
Antiguo 24/11/2010, 06:21
 
Fecha de Ingreso: agosto-2010
Mensajes: 202
Antigüedad: 13 años, 8 meses
Puntos: 4
Respuesta: 2 botones a un mismo form

pues no no funciona cambié el código por esto y no funciona en ningún navegador.

<button class="botonojo" type='button' name="ver" value="ver"></button>
  #11 (permalink)  
Antiguo 24/11/2010, 06:24
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: 2 botones a un mismo form

Hola:

¿type="button"...?

... no se trataba de un submit...¿?

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #12 (permalink)  
Antiguo 24/11/2010, 06:25
 
Fecha de Ingreso: agosto-2010
Mensajes: 202
Antigüedad: 13 años, 8 meses
Puntos: 4
Respuesta: 2 botones a un mismo form

<input type="image" src="images/ver_tp.png" name="ver" value="ver" align="center"/>


este es el botón en cuestión...

Saludos!!!

Última edición por edgar4615; 24/11/2010 a las 06:33
  #13 (permalink)  
Antiguo 24/11/2010, 06:45
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: 2 botones a un mismo form

El error esta en que debes hacer la comprobación de cual pulsa de la siguiente manera:

if(isset($_POST['boton1'])) {
...
} else ...

o si lo prefieres dos if(isset...)

Un saludo!
  #14 (permalink)  
Antiguo 24/11/2010, 06:47
 
Fecha de Ingreso: agosto-2010
Mensajes: 202
Antigüedad: 13 años, 8 meses
Puntos: 4
Respuesta: 2 botones a un mismo form

tengo esto y funciona con el input type image pero con el button no funciona...


if($_POST['ver']=='ver')
{
echo "soy el botón ver";
}


Muchas gracias!!!!
  #15 (permalink)  
Antiguo 24/11/2010, 07:07
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: 2 botones a un mismo form

Saludos

Para retomar las variables por post son formularios que se envian por medio de submit si necesitas un boton de tipo button debes capturar la variable de otra manera

Ejemplo

Código HTML:
Ver original
  1. <button type="button" onClick="window.location='programa.php?ver=ver'"
  2. />Continuar</button>

PHP
Código PHP:
Ver original
  1. if($_GET['ver']=='ver')
  2. {
  3. echo "soy el botón ver";
  4. }

EDITADO: O puedes hacer una funcion javascript que realice el submit cuando opriman sobre el button mediante un evento Onclick
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #16 (permalink)  
Antiguo 24/11/2010, 08:18
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: 2 botones a un mismo form

Cita:
Iniciado por edgar4615 Ver Mensaje
tengo esto y funciona con el input type image pero con el button no funciona...


if($_POST['ver']=='ver')
{
echo "soy el botón ver";
}


Muchas gracias!!!!
usa el isset...

Te lo he comentado antes...
  #17 (permalink)  
Antiguo 24/11/2010, 08:19
 
Fecha de Ingreso: agosto-2010
Mensajes: 202
Antigüedad: 13 años, 8 meses
Puntos: 4
Respuesta: 2 botones a un mismo form

gracias voy a probarlo.

Saludos!
  #18 (permalink)  
Antiguo 24/11/2010, 08:35
 
Fecha de Ingreso: agosto-2010
Mensajes: 202
Antigüedad: 13 años, 8 meses
Puntos: 4
Respuesta: 2 botones a un mismo form

Pero con el isset no puedo comparar, es decir, la opción adquiere distintos valores... no me funciona con isset.


decir que como lo he expuesto funciona perfectamente menos en iexplorer que tanto el botón ver como ejecutar me hace las acciones del combo...

Gracias y saludos!!!!! :adios
:

Última edición por edgar4615; 24/11/2010 a las 08:47
  #19 (permalink)  
Antiguo 24/11/2010, 12:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: 2 botones a un mismo form

Cita:
Iniciado por edgar4615 Ver Mensaje
decir que como lo he expuesto funciona perfectamente menos en iexplorer que tanto el botón ver como ejecutar me hace las acciones del combo...
pero hombre, ¿quien sigue usando IE?

parece absurdo evitar la solución solo porque no "podemos" hacer nada mas...

me pregunto si habrías usado la opción del switch()
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #20 (permalink)  
Antiguo 24/11/2010, 13:20
 
Fecha de Ingreso: agosto-2010
Mensajes: 202
Antigüedad: 13 años, 8 meses
Puntos: 4
Respuesta: 2 botones a un mismo form

yo uso firefox y chrome pero cuando programas tiene que servir en todos los navegadores. Por culpa de ie muchas veces tengo que programar 2 hojas de estilos y quebrarme la cabeza con cosas simples como ahora. Creo que lo que pasa es que, como he leido en muchos foros y en este mismo, iexplorer interpreta coordenadas de imagenes pero no se como definirlas para decirle coordenada x1 e y1 botón ver y coordenada x2, y2 boton ejecutar....

Gracias a todos chicos!
  #21 (permalink)  
Antiguo 24/11/2010, 13: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: 2 botones a un mismo form

lo que pasa es que quieres abrir una lata de cerveza con una cuchara... digo, podrías... ¿pero que caso tiene?

los <input/> del tipo image sirven precisamente para pasar las coordenadas del click sobre la imagen dada... pero tu no quieres eso, ¿verdad?

vamos... que estas haciendo las cosas de mala gana y sin conocimiento, si deseas que tus botones de acción sean imágenes tan sencillo como usar los elementos correctos!!
Código HTML:
<button type="submit" class="action">
  <img src="foo.gif"/>
</button> 
y claro, necesitarás de los estilos para neutralizar el efecto de botón...
Cita:
button.action { border: 0; background: transparent; }
button.action img { border: 0; }
¡bingo!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #22 (permalink)  
Antiguo 24/11/2010, 14:01
 
Fecha de Ingreso: agosto-2010
Mensajes: 202
Antigüedad: 13 años, 8 meses
Puntos: 4
Respuesta: 2 botones a un mismo form

el caso es que ya he probado eso y no me funciona, como tengo más de uno lo que hago es diferenciarlos por el name, pero nada.



Código PHP:
Ver original
  1. <button type="submit" class="action" name="ver" value="ver" id="ver">
  2.           <img src="images/ver_tp.png"/> --> c&#243;digo del botón ver
  3.  
  4.  
  5.  
  6.     <button type="submit" class="action" name='ejecutar' value="ejecutar" id="ejecutar">
  7.         <img src="images/ejecutar_tp.png"/>
  8.         </button> --> c&#243;digo del botón ejecutar
  9.  
  10.  
  11.  
  12. los dos me hacen la misma acci&#243;n... ejecutar, la ver no la hacen...
  13.        </button>

Última edición por edgar4615; 24/11/2010 a las 14:11
  #23 (permalink)  
Antiguo 24/11/2010, 14:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: 2 botones a un mismo form

pero por favor!!

¿si te has dado cuenta que anidas un botón dentro de otro?

eso esta completamente mal.... es incorrecto, ¿porque lo haces?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #24 (permalink)  
Antiguo 24/11/2010, 14:35
 
Fecha de Ingreso: agosto-2010
Mensajes: 202
Antigüedad: 13 años, 8 meses
Puntos: 4
Respuesta: 2 botones a un mismo form

Me he equivocado al traspasar código, perdón pero en el form tengo <button></button> y sigue sin funcionar los dos por separado
  #25 (permalink)  
Antiguo 24/11/2010, 15:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: 2 botones a un mismo form

Cita:
Iniciado por edgar4615 Ver Mensaje
Me he equivocado al traspasar código, perdón pero en el form tengo <button></button> y sigue sin funcionar los dos por separado
sigo sin poder creerte amigo, la experiencia me dice que es bien posible... pero como siempre, ¿que harás que no te sale?

al recibir el formulario intenta esto:
Código PHP:
print_r($_POST); 
ejecuta el formulario y presiona en ambos casos un botón cada ves, los resultados los muestras... ¿te parece?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #26 (permalink)  
Antiguo 24/11/2010, 16:32
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: 2 botones a un mismo form

Hola:

Lamentablemente los navegadores no responden todos igual en iguales casos, y es que los tags button son algo distintos en algunos casos, porque recuerdo que en algunos casos si se define un name, el value asociado no siempre es lo que se envía sino el innerHTML (creo recordar)... más o menos como los textarea...

La verdad es que la semántica de algo "input", se supone que es "entrada" de datos, pero un "button", no debería tener la misma semántica. Tal vez no exista ningún problema se la entrada se hiciese con un control "input" (entrada)

Otra forma de solucionar el problema es usando como entrada una imagen, y aunque algunos navegadores no envían el value, si que se envía el nombre seguido de un punto y la x y la y de las coordenadas, y como php procesa esos valores cambiando el punto por un guión bajo (cuetiones de sintaxis), en php puede controlarse que existan esas variables:

if (isset($_POST["ver_x"]))...
if (isset($_POST["ejecutar_x"]))...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #27 (permalink)  
Antiguo 25/11/2010, 01:14
 
Fecha de Ingreso: agosto-2010
Mensajes: 202
Antigüedad: 13 años, 8 meses
Puntos: 4
Respuesta: 2 botones a un mismo form

La cuestión es que el botón ejecutar hace de submit de un <option></option> y lo que tengo para recoger los distintos valores es:

Código PHP:
Ver original
  1. if($_POST['ver']=='ver')
  2. {
  3.     acción de ver;
  4. }
  5.  
  6. else if($_POST['opcion']=='nuevo')
  7. {
  8.     acción de nuevo;
  9. }

si hago lo de isset no puedo usar esta acción verdad????

Saludos!!
  #28 (permalink)  
Antiguo 25/11/2010, 01:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: 2 botones a un mismo form

a ver...

intenta así:
Código PHP:
if (isset($_POST['ver']))
{
    echo 
'VER';
}
elseif ( ! empty(
$_POST['opcion']))
{
  echo 
'OPCION: ' $_POST['opcion'];

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: botones, formulario
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 11:39.