Foros del Web » Programando para Internet » PHP »

Redireccionar con botones

Estas en el tema de Redireccionar con botones en el foro de PHP en Foros del Web. Hola a todos, este es mi primer mensaje aunque os llevo mucho tiempo leyendo. Gracias a todos :). Ahora, mi consulta es la siguiente: Quiero ...
  #1 (permalink)  
Antiguo 02/01/2009, 01:27
 
Fecha de Ingreso: enero-2009
Mensajes: 4
Antigüedad: 15 años, 4 meses
Puntos: 0
Redireccionar con botones

Hola a todos, este es mi primer mensaje aunque os llevo mucho tiempo leyendo. Gracias a todos :).

Ahora, mi consulta es la siguiente:

Quiero crear una página que tenga varios botones:

BtnPersonas BtnEntidades

Y que al pulsar cada uno de los botones, esa página se redireccione a una nueva, el código sería algo así:

<!--_______VENTANA GESTIONAR PERSONAS______-->
<?php
if (isset($_POST['BtnPersonas'])){
Header("Location: gestionPersonas.php");
}
?>

El caso es que esto me falla, porque me dice que la cabecera ya ha sido declarada y no puedo volver a declararla.

¿Estoy utilizando la función correcta para hacer la redirección al pulsar el botón?De ser así, ¿en qué puedo estar fallando?

Gracias.
  #2 (permalink)  
Antiguo 02/01/2009, 04:25
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Respuesta: Redireccionar con botones

Hola arkyXperience. Bienvenido al foro.

Me parece que con PHP no se puede detectar cuando pulsar el botón. Tendrías que hacerlo con JavaScript.

Código javascript:
Ver original
  1. <input type="button" onclick="location='gestionPersonas.php'" />

Saludos,
  #3 (permalink)  
Antiguo 02/01/2009, 06:07
 
Fecha de Ingreso: agosto-2007
Mensajes: 248
Antigüedad: 16 años, 8 meses
Puntos: 1
Respuesta: Redireccionar con botones

Prueba algo asi, yo es lo que suelo usar en formularios con mas de una accion.
Espero que te sea de utilidad.

Código:
<p align="center">      
           <!-- INSERCION -->
           <input type="submit" id="insertar_revistas" name="insertar_revistas" value="Insertar" 
          onclick="document.formulario_revistas.action='revistas_insertar.php'"/>
           <!-- BORRADO -->          
           <input type="submit" id="eliminar_revistas" name="eliminar_revistas" value="Eliminar"
          onclick="document.formulario_revistas.action='revistas_eliminar.php'"/>
           <!-- MODIFICACION-->
           <input type="submit" id="modificar_revistas" name="modificar_revistas" value="Modificar"
          onclick="document.formulario_revistas.action='revistas_modificar.php'"/>
           <!-- BUSQUEDA-->
           <input type="submit" id="buscar_revistas" name="buscar_revistas" value="Buscar"
          onclick="document.formulario_revistas.action='revistas_buscar.php'"/>
           <!-- BORRADO-->          
           <input type="submit" id="limpiar_revistas" name="limpiar_revistas" value="Limpiar"
          onclick="document.formulario_revistas.action='revistas_limpiar.php'"/>          
          </p>
  #4 (permalink)  
Antiguo 02/01/2009, 15:49
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Redireccionar con botones

Cita:
Iniciado por JavierB Ver Mensaje
Me parece que con PHP no se puede detectar cuando pulsar el botón.
De hecho sí se puede. Obviamente tendrá que ser un botón tipo submit y estar dentro de un formulario. El botón es identificado por medio del nombre del mismo (Sólo forma parte del array $_POST aquel botón que ha sido pulsado, el resto no).

Y sobre el error que te muestra, se debe a que antes hay una salida HTML al navegador. Lee esta FAQ por favor.

  #5 (permalink)  
Antiguo 02/01/2009, 15:50
 
Fecha de Ingreso: diciembre-2008
Mensajes: 70
Antigüedad: 15 años, 4 meses
Puntos: 4
Respuesta: Redireccionar con botones

exacto okram, se puede pero es demasiado para hacerlo en el servidor, mucho mas conveniente con javascript

Saludos
  #6 (permalink)  
Antiguo 02/01/2009, 15:58
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Redireccionar con botones

@gilitos82, hay una gran diferencia entre javascript y php, tan grande que uno no puede reemplazar al otro. Como dije en otro post en el que tú estabas participando, PHP es un lenguaje de servidor y Javascript de cliente. Ambos tienen sus ventajas y desventajas, y la principal desventaja de JS es que epende totalmente del navegador. Por lo tanto, no hay la garantía de que vaya a funcionar. Es por eso que se habla de "validar un formulario con PHP" o cosas por el estilo. Si bien son tareas que fácilmente se realizan usando javascript, con PHP hay la seguridad de que va a funcionar, y de la forma en que nosotros lo hayamos programado.

Lo óptimo es crear validaciones en ambos lados. En este caso, por ejemplo, lo óptimo sería usar eventos javascript, que nos dan velocidad en los casos en que funcione, y además tener "de reserva" una redirección en PHP, para que si el código JS no se ejecutó el usuario no se quede sin ver la página destino. Es lo que llamamos "Accesibilidad". Tema importante hoy, eh?

  #7 (permalink)  
Antiguo 02/01/2009, 16:49
 
Fecha de Ingreso: febrero-2006
Mensajes: 858
Antigüedad: 18 años, 2 meses
Puntos: 4
Respuesta: Redireccionar con botones

De casualidad estás poniendo esa parte del codigo mediante un require() o include() ?

saludos
__________________
*La amistad se multiplica cuando se divide*
  #8 (permalink)  
Antiguo 04/01/2009, 13:15
 
Fecha de Ingreso: enero-2009
Mensajes: 4
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Redireccionar con botones

Perfecto, todo arreglado, como me indicáis, he probado "onclick" y funciona perfectamente (ya estoy investigando el paso de variables con este método :) ).

Respecto a okram, le echaré un vistazo también al faq e intentaré hacerlo funcionar con header (que el saber no ocupa lugar).

Y a la pregunta que me hace reimonfranco, no, es código plano, todo dentro del index.php.

¡Muchas gracias a todos!
  #9 (permalink)  
Antiguo 12/01/2009, 10:14
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Redireccionar con botones

Hola te doy otra respuesta por si le sirve a otros.
Yo me frene en un problema parecido y lo solucione hubicando en la parte superior la siguiente cabecera (tiene que estar antes de todo, nada antes ni un espacio):
<?php ob_start() ?>
y al finalizar escribes (no puede haber nada despues):
<?php ob_end_flush(); ?>
con eso no tendras problemas para utilizar en header para redireccionar.
Suerte
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #10 (permalink)  
Antiguo 12/01/2009, 12:42
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Redireccionar con botones

@acumulador, funciona, pero no "solucionas el problema", simplemente lo enmascaras. Lo mejor es armar bien la lógica del programa para tener que evitar usar esos "hacks", que tienen un propósito, pero son empleados con fines erróneos. El resultado es el mismo, pero tendrás un código más limpio y de ejecución más fácil (tu servidor te lo agradecerá)

  #11 (permalink)  
Antiguo 12/01/2009, 12:59
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Redireccionar con botones

Cita:
Iniciado por okram Ver Mensaje
[...] funciona, pero no "solucionas el problema", simplemente lo enmascaras. Lo mejor es armar bien la lógica del programa para tener que evitar usar esos "hacks", que tienen un propósito, pero son empleados con fines erróneos [...]



--
(que mas puedo decir, estoy completamente de acuerdo)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #12 (permalink)  
Antiguo 12/01/2009, 14:18
 
Fecha de Ingreso: octubre-2008
Mensajes: 276
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Redireccionar con botones

Hola arkyXperience, echa un vistazo a un post donde pregunté algo parecido.

Saludos.
  #13 (permalink)  
Antiguo 12/01/2009, 20:13
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Redireccionar con botones

Gracias por el concejo; pero sigo en las nubes... Cual seria entonces la forma correcta para solucionar el problema???
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #14 (permalink)  
Antiguo 12/01/2009, 20:26
 
Fecha de Ingreso: octubre-2008
Mensajes: 276
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Redireccionar con botones

Hola acumulador, puedes tener un botón que realice el submit:

Código HTML:
<input value = "Botón Enviar" class = "boton" type = "submit" /> 
y el resto que redireccionen:

Código HTML:
<input value = "Botón Redireccón 1" class = "boton" type = "button" onclick = "javascript:window.location='archivo1.php'">

<input value = "Botón Redireccón 2" class = "boton" type = "button" onclick = "javascript:window.location='archivo2.php'">

<input value = "Botón Redireccón 3" class = "boton" type = "button" onclick = "javascript:window.location='archivo3.php'"> 
o todos que redireccionen y ninguno que haga submit, por ejemplo.

Yo lo hago así pero también está la opción de hacer switch.

Haces todos los botones tipo submit:

Código HTML:
<form action = "test.php" method = "post">
   <input type = "submit" name = "accion" value = "Acceder" />
   <input type = "submit" name = "accion" value = "Registrarse" />
</form> 
test.php

Código PHP:
<?php
   
switch($_POST['accion']) {
   case 
'Acceder':
      
header("Location: formulario_acceder.htm"); // Te llevará a la página formulario_acceder.htm
      
break;
   case 
'Registrarse':
      
header("Location: formulario_registrarse.htm"); // Te llevará a la página formulario_registrarse.htm
      
break;
}
?>
Yo lo hago sin el switch para tener el código en archivos php separados.

Espero que te sirva.

Saludos.

Última edición por letni; 12/01/2009 a las 20:32
  #15 (permalink)  
Antiguo 15/01/2009, 09:39
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Redireccionar con botones

Letni, muchisimas gracias; de verdad me va a servir muchoooooo
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #16 (permalink)  
Antiguo 15/01/2009, 09:42
 
Fecha de Ingreso: octubre-2008
Mensajes: 276
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Redireccionar con botones

De nada acumulador, para eso estamos.

Saludos.
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 02:08.