Foros del Web » Programando para Internet » PHP »

2 botones en un form

Estas en el tema de 2 botones en un form en el foro de PHP en Foros del Web. tengo un form des de el que puedo quisiera borrar el registro de pantalla o modificar. la grabación lanza otro form donde grabo en la ...
  #1 (permalink)  
Antiguo 07/10/2004, 11:02
 
Fecha de Ingreso: agosto-2002
Ubicación: Lleida
Mensajes: 494
Antigüedad: 15 años, 3 meses
Puntos: 0
2 botones en un form

tengo un form des de el que puedo quisiera borrar el registro de pantalla o modificar.

la grabación lanza otro form donde grabo en la base de datos,

<input name="Borrar" type="button" id="Borrar" value="Borrar">

y el borrado se lo quiero poner en un evento onclick del boton pero me da error en la ejecucion.

<input name="Borrar" type="button" id="Borrar" value="Borrar" onClick="this.form.action='pers211g.php?p=A';this. form.submit()" >

pero ... cuando esto funcione como recojo desde el script pers211g.php
los valores que tiene el formulario para poder borrarlos?

me explico
  #2 (permalink)  
Antiguo 07/10/2004, 11:17
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
yo en lugar de javascript uso sólo php, asi:

formulario.html

<form name="xxx" action="procesa.php" method="post">
<input name="borrar" type="submit" value="Borrar">
<input name="modificar" type="submit" value="Modificar">
</form>

procesa.php

<?php
if(isset($_POST['borrar']))
{
delete from tabla where .....
header("location: formulario.html")
exit();
}
if(isset($_POST['modificar']))
{
update tabla where .....
header("location: formulario.html")
exit();
}
?>

cada bloque if hace lo suyo, segun el boton que se presionó y luego vuelve a la pagina del formulario, si en esa pagina se obtienen los datos desde la bd se verán automáticamente los cambios.

Última edición por claudiovega; 07/10/2004 a las 11:19
  #3 (permalink)  
Antiguo 07/10/2004, 11:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
claudiovega
El problema de tu solución es que si la redirección final lo hace PHP .. tendrás que propagar por el URL (en ese "location" que haces) o bien en una cookie o sesión los datos que llegaron a ese script desde el formulario original.

Un saludo,
  #4 (permalink)  
Antiguo 07/10/2004, 11:48
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
si, en el caso en que hubieran problemas de validación y no se pudiese modificar ni borrar el registro habría que de alguna forma presentar los valores de ya digitados de nuevo en el formulario, personalmente lo pongo en una sesion (sólo para no usar javascript).
  #5 (permalink)  
Antiguo 07/10/2004, 12:19
 
Fecha de Ingreso: agosto-2002
Ubicación: Lleida
Mensajes: 494
Antigüedad: 15 años, 3 meses
Puntos: 0
el formulario funciona ya ok ...
pero procesa.php recibe las variables de la pantalla pero no reconoce el valor de $_POST
o sea no se si me han pinchado borrar o modificar
  #6 (permalink)  
Antiguo 07/10/2004, 12:26
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
entonces no tienes register_globals=Off en php.ini. Si es asi (no tienes register_globals=Off en php.ini, sin en On), debes recibir las variables asi:

procesa.php

<?php
if(isset($borrar))
{
delete from tabla where .....
header("location: formulario.html")
exit();
}
if(isset($modificar))
{
update tabla where .....
header("location: formulario.html")
exit();
}
?>

comprueba eso.
  #7 (permalink)  
Antiguo 07/10/2004, 12:56
 
Fecha de Ingreso: agosto-2002
Ubicación: Lleida
Mensajes: 494
Antigüedad: 15 años, 3 meses
Puntos: 0
Funciona. ok!!
muchas gracias
  #8 (permalink)  
Antiguo 07/10/2004, 13:00
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
se recomienda usar register_globals= Off, por un asunto de seguridad, y acceder a las variables a traves del los arrays superglobales ($_POST[],$_GET[]).
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 05:01.