Foros del Web » Programando para Internet » PHP »

Cada botón con su valor.

Estas en el tema de Cada botón con su valor. en el foro de PHP en Foros del Web. Buenas, mi problema está en que tengo un form con dos botones, cada uno con su valor correspondiente. O sea, de una lista de 2 ...
  #1 (permalink)  
Antiguo 07/05/2010, 02:48
 
Fecha de Ingreso: mayo-2010
Mensajes: 5
Antigüedad: 13 años, 11 meses
Puntos: 0
Cada botón con su valor.

Buenas,

mi problema está en que tengo un form con dos botones, cada uno con su valor correspondiente.

O sea, de una lista de 2 botones, uno se le debe asignar con el valor "nuevo", mientras que al otro botón se le asigna con el valor "seguimiento".

Ahi no hay problema, el problema está en que cuando doy el botón "nuevo", en el form se le hace un POST con el último valor del último botón y no el primero.

Formulario:

Código:
<form method="POST" action="<?php echo $editFormAction; ?>">
		   
		   <input name="boton" type="button" class="boton_nuevo" id="boton_nuevo" onclick="this.form.submit()" value=" " />
		   <input type="hidden" name="lista" value="nuevo" />

		   <input name="boto" type="button" class="boton_seguimiento" id="boton_seguimiento" onclick="this.form.submit()"	value=" " />
		   <input type="hidden" name="lista" value="seguimiento" />

		   </form>

Codigo al que quiero que se ejecute al pulsar el botón:

Código:
echo ("$_POST[lista]");

switch ($_POST["lista"]){

	case "nuevo":  echo ("Switch: nuevo");
				 break;

	case "seguimiento":  echo ("Switch: seguimiento");
				 break;

	default: echo ("Switch: otros");

}
En este caso, si pulso el botón "nuevo" se ejecuta el case "seguimiento". En otras palabras, antes del switch, miro el valor del POST, y es "seguimiento" cuando doy el botón "nuevo".

¿Cómo podría arreglar eso?

¡Gracias de antemano!
  #2 (permalink)  
Antiguo 07/05/2010, 03:19
 
Fecha de Ingreso: abril-2010
Mensajes: 61
Antigüedad: 14 años
Puntos: 0
Respuesta: Cada botón con su valor.

te puedes ahorrar poniendo el onclick y poner el type=submit en vez de button
ademas el value no se lo deberias poner al campo oculto se lo pones al boton y recoges el valor del boton no el d elista, prueba eso a ver
  #3 (permalink)  
Antiguo 07/05/2010, 03:35
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: Cada botón con su valor.

No puedes ponerle el mismo nombre a dos elementos del mismo formulario (name="lista"), luego php al recoger el valor, solo va a tomar el del primero. O haces dos formularios, o con javascript haces que al pulsar uno de los botones, rellene cierto valor en un campo oculto y se envie el formulario, yo tengo algo asi en mi web, dime si te puede servir.
  #4 (permalink)  
Antiguo 07/05/2010, 03:39
 
Fecha de Ingreso: mayo-2010
Mensajes: 5
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Cada botón con su valor.

Gracias hawkeye, definitivamente funciona poniento type=submit, y el valor se lo pongo al boton, de esta manera el POST ya recoge bien el valor.

Pero de esta manera:

Código:
<input name="boton" type="submit" class="boton_nuevo" id="boton_nuevo" value="nuevo" />
<input name="lista" type="hidden" value="nuevo" />

<input name="boton" type="submit" class="boton_seguimiento" id="boton_seguimiento" value="seguimiento" />
<input name="lista" type="hidden" value="seguimiento" />

<input name="boton" type="submit" class="boton_valoracion" id="boton_valoracion" value="valoracion" />
<input name="lista" type="hidden" value="valoracion" />
Me sale mal ya que me aparece el icono del boton nuevo con las letras 'nuevo' encima y no me interesa, queda feo. Sólo necesito que salga el icono sin letras, por eso tengo otro input oculto con su valor.

¿Cómo podría poner un botón sin letras, pero su valor sirva para el POST y realizar bun la sentencia SWITCH?

Gracias.
  #5 (permalink)  
Antiguo 07/05/2010, 04:13
 
Fecha de Ingreso: abril-2010
Mensajes: 61
Antigüedad: 14 años
Puntos: 0
Respuesta: Cada botón con su valor.

Pero es que asi como lo haces solo te va a coger el calor valoracion por que todos tus campos ocultos se llaman lista, tonces tienes k recoger el valor del boton y asi segun a cual le des pillara uno u otro.

No se si existe la opcion text="texto" como en asp para poner lo que quieras en el boton pruebalo a ver y me comentas :D

los campos ocultos no los utilices para este caso por que d ela forma que los quieres usar no sirve, tiene que ser poniendole un valor al boton. Los campos ocultos se usan mas que nada para enviar algo que no podrias enviar de otra forma que no fuera con un campo oculto o una sesion.
  #6 (permalink)  
Antiguo 07/05/2010, 04:37
 
Fecha de Ingreso: mayo-2010
Mensajes: 5
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Cada botón con su valor.

Gracias por las respuestas, he barajado todas las posibles opciones y me aparecen de las siguientes maneras:

Código:
           <form method="POST" action="<?php echo $editFormAction; ?>">
           <input name="boto" type="submit" class="boto_nous" id="boto_nous" value="nous" text=" " />
	<!--	   <input name="llista1" type="hidden" value="nous" /> -->
		
           <form method="POST" action="<?php echo $editFormAction; ?>">
	   <input name="boto" type="submit" class="boto_seguiment" id="boto_seguiment" value="seguiment" text=" "/>
	<!--	   <input name="llista2" type="hidden" value="seguiment" /> -->
		
           <form method="POST" action="<?php echo $editFormAction; ?>">
	   <input name="boto" type="submit" class="boto_valoracio" id="boto_valoracio"	value="valoracio" text=" " />
	<!--	   <input name="llista3" type="hidden" value="valoracio" /> -->
Con este código, lo problemático son los textos que están encima de los iconos en la última columna. Lo podeis ver en la siguiente captura:




He cambiado tal como decia el otro forero, Vun, con tres formularios, funciona bien, y sin textos encima, pero se me desencuadra la cuadrícula, con el siguiente código y captura (cerrando el form):


Código:
           <form method="POST" action="<?php echo $editFormAction; ?>">
           <input name="boto" type="submit" class="boto_nous" id="boto_nous" value="   " />
	   <input name="llista1" type="hidden" value="nous" /></form>
		
           <form method="POST" action="<?php echo $editFormAction; ?>">
	   <input name="boto" type="submit" class="boto_seguiment" id="boto_seguiment" value="   "/>
	   <input name="llista2" type="hidden" value="seguiment" /></form>
		
           <form method="POST" action="<?php echo $editFormAction; ?>">
	   <input name="boto" type="submit" class="boto_valoracio" id="boto_valoracio"	value=" " />
	   <input name="llista3" type="hidden" value="valoracio" /></form>



De esta manera, sin cerrar el form, aparece bien estéticamente (última columna), pero no funciona bien. No hace nada.

Código:
           <form method="POST" action="<?php echo $editFormAction; ?>">
           <input name="boto" type="submit" class="boto_nous" id="boto_nous" value="   " />
	   <input name="llista1" type="hidden" value="nous" />
		
           <form method="POST" action="<?php echo $editFormAction; ?>">
	   <input name="boto" type="submit" class="boto_seguiment" id="boto_seguiment" value="   "/>
	   <input name="llista2" type="hidden" value="seguiment" />
		
           <form method="POST" action="<?php echo $editFormAction; ?>">
	   <input name="boto" type="submit" class="boto_valoracio" id="boto_valoracio"	value=" " />
	   <input name="llista3" type="hidden" value="valoracio" />



Si no entendeis lo que quiero expresar....preguntadme...

Gracias!!
  #7 (permalink)  
Antiguo 07/05/2010, 04:44
 
Fecha de Ingreso: mayo-2010
Mensajes: 5
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Cada botón con su valor.

Bueno, mi conclusión es que aparezca como en el último dibujo.
  #8 (permalink)  
Antiguo 07/05/2010, 04:49
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: Cada botón con su valor.

Añadele esto a tus <form>: style="margin:0px;display: inline;" , te quitara un espacio innecesario arriba y abajo de los formularios.

Tambien puedes forzar al navegador a que no haga saltos de linea, no se si esta obsoleto o no, pero a mi me ha salvado de muchos problemas:

<nobr> .................. </nobr>
  #9 (permalink)  
Antiguo 07/05/2010, 04:57
 
Fecha de Ingreso: abril-2010
Mensajes: 61
Antigüedad: 14 años
Puntos: 0
Respuesta: Cada botón con su valor.

Lo d emeter los 3 formularios es buena idea, solo tienes que darles estilo meterlos en un div y ponerle un tamaño, una posicion,margenes,etc...
  #10 (permalink)  
Antiguo 07/05/2010, 05:07
 
Fecha de Ingreso: mayo-2010
Mensajes: 5
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Cada botón con su valor.

Ole! añadiendo el estilo en el form ya aparece bien estéticamente. Se nota que estoy algo oxidado de HTML. Seguire repasando un poco.

Muchas gracias a todos. Y seguiremos viendo por aqui.

Saludos!

Etiquetas: Ninguno
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 19:11.