Foros del Web » Programando para Internet » PHP »

Acción de un form según elección

Estas en el tema de Acción de un form según elección en el foro de PHP en Foros del Web. Hola a todos... Estoy haciendo un formulario en el cual hay un menú desplegable con dos opciones: Modificar - Borrar ¿Cómo hago para que PHP ...
  #1 (permalink)  
Antiguo 16/04/2004, 21:56
 
Fecha de Ingreso: abril-2004
Mensajes: 17
Antigüedad: 13 años, 8 meses
Puntos: 0
Acción de un form según elección

Hola a todos...

Estoy haciendo un formulario en el cual hay un menú desplegable con dos opciones: Modificar - Borrar

¿Cómo hago para que PHP reconozca cuál es la acción que quiero que se ejecute y luego la realice en función de la opción escogida?
¿Tengo que declarar alguna condición, alguna variable, cómo?

Gracias de antemano...
__________________
Marco Gonzalo Gómez P.
- - - - - - - - - - - - - - - - - - - - - - - - - - -
Desarrollador Web
Telf./Fax: (+58212)2371369
Móvil: (+58412)5845469
- - - - - - - - - - - - - - - - - - - - - - - - - - -
  #2 (permalink)  
Antiguo 16/04/2004, 22:45
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
Código PHP:
<?php

switch ($_GET['accion']){

    case 
'modificar':
        echo 
"modificar";
    break;

    case 
'borrar':
        echo 
"borrar";
    break;

    default:
        echo 
"error: no existe accion!";
    break;

}

?>
__________________
3w.valenciadjs.com
3w.laislatv.com
  #3 (permalink)  
Antiguo 16/04/2004, 23:16
daz
 
Fecha de Ingreso: julio-2001
Ubicación: Bogota
Mensajes: 341
Antigüedad: 16 años, 5 meses
Puntos: 4
se me ocurre algo como esto:

<form action="< ? if (isset ($variable))
{
If($variable="modificar") echo "modificar.php";
else if($variable="borrar") echo "borrar.php";
}
?>"

Dependiendo de lo que el usuario escoja en el formulario, los resultados se van a la pagina modificar.php o borrar.php
  #4 (permalink)  
Antiguo 17/04/2004, 08:36
 
Fecha de Ingreso: abril-2004
Mensajes: 17
Antigüedad: 13 años, 8 meses
Puntos: 0
Gracias pero cómo hago para que la variable tome uno u otro valor, correspondiente a la selección en el menú
__________________
Marco Gonzalo Gómez P.
- - - - - - - - - - - - - - - - - - - - - - - - - - -
Desarrollador Web
Telf./Fax: (+58212)2371369
Móvil: (+58412)5845469
- - - - - - - - - - - - - - - - - - - - - - - - - - -
  #5 (permalink)  
Antiguo 17/04/2004, 08:39
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
perdona es verdad...

por ejemplo si el fichero se llama index.php

index.php?accion=borrar
__________________
3w.valenciadjs.com
3w.laislatv.com
  #6 (permalink)  
Antiguo 17/04/2004, 08:39
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
si no pones nada.. como veras sale el default!
__________________
3w.valenciadjs.com
3w.laislatv.com
  #7 (permalink)  
Antiguo 17/04/2004, 08:53
 
Fecha de Ingreso: abril-2004
Mensajes: 17
Antigüedad: 13 años, 8 meses
Puntos: 0
Bueno, lo que sucede es queel formulario ya está montado:

Título, contenido,...,Acción a realizar.Enviar.

Es decir el menú desplegable se encuentra dentro del formulario a rellenar.

Lo que quería saber era cómo hacer para que, una vez introducidos los datos necesarios y escogida la acción a tomar, el PHP sepa qué debe hacer luego de presionar el botón de envío.
__________________
Marco Gonzalo Gómez P.
- - - - - - - - - - - - - - - - - - - - - - - - - - -
Desarrollador Web
Telf./Fax: (+58212)2371369
Móvil: (+58412)5845469
- - - - - - - - - - - - - - - - - - - - - - - - - - -
  #8 (permalink)  
Antiguo 17/04/2004, 08:56
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
umm, pues eso.,.. a ver, pega el code del formulario para que veamos q haces..., pero creo que ya lo he explicado con lo de arriba... el royo es adaptarlo a tu formulario... a ver, pega el code amigo!
__________________
3w.valenciadjs.com
3w.laislatv.com
  #9 (permalink)  
Antiguo 17/04/2004, 09:01
 
Fecha de Ingreso: abril-2004
Mensajes: 17
Antigüedad: 13 años, 8 meses
Puntos: 0
<form action="<?php echo $editFormAction; ?>" method="POST" name="form_update" id="form_update">
<p align="center">
<select name="menu_contenido" onChange="MM_jumpMenu('parent',this,0)">
<option selected>Secciones</option>
<option value="id?=<?php echo $rs_secciones->Fields('id')?>"><?php echo $rs_secciones->Fields('titulo')?></option>
</select>
</p>
<?php if ($totalRows_rs_update > 0) { // Show if recordset not empty ?>
<p align="center" class="style2">&nbsp;</p>
<p align="center" class="style2">
<input name="id" type="hidden" id="id4" value="<?php echo $rs_update->Fields('id'); ?>">
T&iacute;tulo:<br>
<input name="titulo" type="text" id="titulo4" value="<?php echo $rs_update->Fields('titulo'); ?>" size="80">
</p>
<p align="center" class="style2">Contenido:<br>
<textarea name="contenido" cols="80" rows="10" wrap="VIRTUAL" id="textarea3"><?php echo $rs_update->Fields('contenido'); ?></textarea>
</p>
<p align="center" class="style2">
<select name="accion" id="accion">
<option selected>Acci&oacute;n a realizar</option>
<option value="upd">Modificar secci&oacute;n</option>
<option value="del">Borrar secci&oacute;n</option>
</select>
</p>
<p align="center" class="style2">
<input type="submit" name="Submit" value="Aceptar">
</p>
<?php } // Show if recordset not empty ?>
</form>
__________________
Marco Gonzalo Gómez P.
- - - - - - - - - - - - - - - - - - - - - - - - - - -
Desarrollador Web
Telf./Fax: (+58212)2371369
Móvil: (+58412)5845469
- - - - - - - - - - - - - - - - - - - - - - - - - - -
  #10 (permalink)  
Antiguo 17/04/2004, 09:52
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
umm tendrias que cambiar el $_GET['accion'], por, $_POST['accion'], solo eso. ya que no quieres transportal la variable por la URL mediante GET, si no que la transportas mediante el formulario tipo POST


Código PHP:
<?php

switch ($_POST['accion']){

    case 
'upd':
        echo 
"modificar";
    break;

    case 
'del':
        echo 
"borrar";
    break;

    default:
        echo 
"error: no existe accion!";
    break;

}

?>
__________________
3w.valenciadjs.com
3w.laislatv.com
  #11 (permalink)  
Antiguo 17/04/2004, 09:56
Avatar de shinblood  
Fecha de Ingreso: diciembre-2003
Ubicación: lima
Mensajes: 214
Antigüedad: 14 años
Puntos: 1
hola marco

lee este post
http://www.forosdelweb.com/showthrea...hreadid=192006
un saludo
__________________
saludos :adios:
  #12 (permalink)  
Antiguo 17/04/2004, 09:59
 
Fecha de Ingreso: abril-2004
Mensajes: 17
Antigüedad: 13 años, 8 meses
Puntos: 0
Pero hay que recargar la página???

¿No hay una forma de hacer un if en los códigos de update y delete que contienen la conexión a la DB en las etiquetas PHP correspondientes en función a la variable y el valor que haya sido definido?

Es decir:

if ($variable = upd) {
update....................................
}
else if ($variable = del) {
delete.............................
}

definiendo la variable que proviene directamente del menú, que lo reconozca al darle al botón enviar, que no sea necesario recargar la página sino que sea inmediato...
__________________
Marco Gonzalo Gómez P.
- - - - - - - - - - - - - - - - - - - - - - - - - - -
Desarrollador Web
Telf./Fax: (+58212)2371369
Móvil: (+58412)5845469
- - - - - - - - - - - - - - - - - - - - - - - - - - -
  #13 (permalink)  
Antiguo 17/04/2004, 10:05
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
a ver.... cuando pulses el formulario y te lance a la pagina que tu quieres.... pones o el IF o el SWITCH, te recomiendo el segundo.... y ya esta... en cada CASE pones lo suyo y el HARA lo que pidas desde el Formulario...

... no hay que recargar nada... de nada... ya que en el SELECT tienes una variable que se llama ACCION, la cual la extraeremos con la variable GLOBAL $_POST, ya que tu formulario es asi... y ese VALOR lo pasaremos por el SWITCH, y el solo ejecutara el CODE.

no se que problema le ves
__________________
3w.valenciadjs.com
3w.laislatv.com
  #14 (permalink)  
Antiguo 17/04/2004, 10:14
 
Fecha de Ingreso: abril-2004
Mensajes: 17
Antigüedad: 13 años, 8 meses
Puntos: 0
es que creo que estás tomando todo el proceso utilizando varias páginas, o por lo menos eso veo pues siempre dices que "cuando pulses el formulario y te lance a la pagina que tu quieres "

Se supone que no debería segundas páginas, el código PHP de modificación y borrado se encuentran al comienzo del archivo sólo deberían estar esperando que se les definiera la acción a realizar.

Yo lo hice una vez hace como un año con mi profesor, el problema es que perdí el archivo y no he podido contactar con mi profesor pues no responde correos y creon que de paso cambió su dirección
__________________
Marco Gonzalo Gómez P.
- - - - - - - - - - - - - - - - - - - - - - - - - - -
Desarrollador Web
Telf./Fax: (+58212)2371369
Móvil: (+58412)5845469
- - - - - - - - - - - - - - - - - - - - - - - - - - -
  #15 (permalink)  
Antiguo 17/04/2004, 10:16
 
Fecha de Ingreso: abril-2004
Mensajes: 17
Antigüedad: 13 años, 8 meses
Puntos: 0
Si me cuesta comprender un poco el código PHP es que sólo lo sé utilizar por medio de DW, lo entiendo un poco pero ese conocimiento no es muy amplio...

Podrías explicarme cómo se trabaja con el SWITCH?
__________________
Marco Gonzalo Gómez P.
- - - - - - - - - - - - - - - - - - - - - - - - - - -
Desarrollador Web
Telf./Fax: (+58212)2371369
Móvil: (+58412)5845469
- - - - - - - - - - - - - - - - - - - - - - - - - - -
  #16 (permalink)  
Antiguo 17/04/2004, 10:22
 
Fecha de Ingreso: abril-2004
Mensajes: 17
Antigüedad: 13 años, 8 meses
Puntos: 0
De repente si sólo me aclaras la siguiente duda, yo puedo ver si lo demás me sale por mi cuenta:

Cómo hago para que un variable tome el valor inmediato ecogido en un select

Ejemplo: Selecciono borrar y ese es el valor de la variable, selecciono modificar y ese es el nuevo valor, sin tener que enviar la selección a ningún otro lado allí mismo.
__________________
Marco Gonzalo Gómez P.
- - - - - - - - - - - - - - - - - - - - - - - - - - -
Desarrollador Web
Telf./Fax: (+58212)2371369
Móvil: (+58412)5845469
- - - - - - - - - - - - - - - - - - - - - - - - - - -
  #17 (permalink)  
Antiguo 17/04/2004, 10:26
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
mira...

http://es2.php.net/manual/es/control...res.switch.php
__________________
3w.valenciadjs.com
3w.laislatv.com
  #18 (permalink)  
Antiguo 17/04/2004, 10:27
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
simplemente seleccionando 1 de las 2 y pulsando Aceptar en el Formulario...
__________________
3w.valenciadjs.com
3w.laislatv.com
  #19 (permalink)  
Antiguo 18/04/2004, 21:08
 
Fecha de Ingreso: abril-2004
Mensajes: 17
Antigüedad: 13 años, 8 meses
Puntos: 0
Hola y Gracias a los que respondieron. Afortunadamente logré contactar con mi profesor, y me dijo lo siguiente:

Cita:
vas a colocar tu menu en tu pagina, lo llamas por ejemplo accion. dentro del código de la página... $accion = $HTTP_POST_VARS['accion']; if($accion == "i") { sql para insertar } elseif($accion == "a") { sql de update } elseif($accion == "e") { sql delete }

y en el HTML tienes:
<form action="pagina.php" method="post" name="form1">
<select name="accion" id="accion">
<option value="i">Insertar</opciton>
<option value="a">Actualizar</option>
<option value="e">eliminar</option>
</select>
</form>
No sé si sea parecido a lo que ustedes me explicaron, como les dije me cuesta ver un poco las cosas en el código. De todas formas agradezco su paciencia y les dejo esto por si les sirve a ustedes...
__________________
Marco Gonzalo Gómez P.
- - - - - - - - - - - - - - - - - - - - - - - - - - -
Desarrollador Web
Telf./Fax: (+58212)2371369
Móvil: (+58412)5845469
- - - - - - - - - - - - - - - - - - - - - - - - - - -
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 09:05.