Foros del Web » Programando para Internet » PHP »

action en el propio formulario

Estas en el tema de action en el propio formulario en el foro de PHP en Foros del Web. Hola a todos, Tengo una página en la que muestro un listado de sitios web que tengo en una tabla temporal, y donde acepto o ...
  #1 (permalink)  
Antiguo 10/05/2010, 07:12
 
Fecha de Ingreso: noviembre-2006
Mensajes: 82
Antigüedad: 17 años, 5 meses
Puntos: 0
action en el propio formulario

Hola a todos,

Tengo una página en la que muestro un listado de sitios web que tengo en una tabla temporal, y donde acepto o rechazo cada sitio. Si lo acepto, inserto ese sitio en otra tabla, y si lo rechazo lo borro de esa tabla temporal.

Lo que quiero hacer es que al aceptar o rechazar un sitio, esa lista se actualice en el propio archivo php, en vez de ir a otra página php donde inserto o borro. Tengo "action="admin_insdel_sitio.php" y me gustaría que el action fuera a la propia página donde estoy, no a esa otra. Alguien sabe cómo se hace?


Este es el código que tengo:

sitios_pendientes.php

Código PHP:
<?php
  
include ("conexion.php");
  
  
$consulta "select * from sitio_temp";
  
$result=mysql_query($consulta) or die(mysql_error()); 
  if (
mysql_num_rows($result)==0){
          echo 
"No hay sitios pendientes.";
        echo 
"<br><br><br>\n";
  }
  
      while(
$row mysql_fetch_array($result))  
    {  
    echo 
"<br>";
    echo 
'<FORM action="admin_insdel_sitio.php" method="get">';
    echo 
"<b>Sitio: </b> <input name='url' type='text' style='border:0px' readonly='readonly' value='".$row['url_temp']."' /><br>";  
    echo 
"<b>Descripción:</b> <input name='desc' type='text' style='border:0px' readonly='readonly' value='".$row['descripcion_temp']."' /><br>";  
    echo 
"<b>Tarea 1:</b> <input name='tuno' type='text' style='border:0px' readonly='readonly' value='".$row['tarea_uno_temp']."' /><br>"
    echo 
"<b>Tarea 2:</b> <input name='tdos' type='text' style='border:0px' readonly='readonly' value='".$row['tarea_dos_temp']."' /><br>";  
    echo 
"<br>"
    echo 
'<input type="submit" name="accion" value="Aceptar" />';
    echo 
'<input type="submit" name="accion" value="Rechazar" />';
    echo 
'</FORM>'
    echo 
"<br>"
    echo 
"<hr>";
    } 
    
 
?>

admin_insdel_sitio.php

Código PHP:
<?php
  
     
include ("conexion.php");

    
$url $_GET['url'];
    
$desc $_GET['desc'];
    
$tuno $_GET['tuno'];
    
$tdos $_GET['tdos'];
    
$valor $_GET['accion'];
    
$login $_SESSION['nombre'];
    
$tipousuario $_SESSION['tipo'];
    
    if(
$valor='Aceptar'){ //si se acepta
        //inserto el sitio en la tabla definitiva
        
mysql_query("INSERT INTO sitio (url,idgrupo,login,descripcion,tarea_uno,tarea_dos) VALUES ('$url','$tipousuario','$login','$desc','$tuno','$tdos')",$conexion);
        
//borro los datos de la temporal
        
mysql_query("DELETE FROM sitio_temp WHERE url_temp='$url'",$conexion);
        
        echo 
"El sitio ha sido aceptado.";
        
$ez.="<a href=\"admin_sitios_pendientes.php\">Atrás</a>"
        echo 
$ez;
    }
    else{
        
mysql_query("DELETE FROM sitio_temp WHERE url_temp='$url'",$conexion);
        echo 
"El sitio ha sido rechazado.";
        
$ez.="<a href=\"sitios_pendientes.php\">Atrás</a>"
        echo 
$ez;
    }    
    
?>
  #2 (permalink)  
Antiguo 10/05/2010, 07:37
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: action en el propio formulario

Hola

Esto if($valor='Aceptar'){ //si se acepta no sería if($valor=='Aceptar'){ //si se acepta

Unifica los dos códigos

Código PHP:
Ver original
  1. $valor = $_GET['accion'];
  2. if($valor==''){ //si se acepta
  3.  
  4. // Aquí todo el código de sitios_pendientes.php
  5.  
  6. else if($valor=='Aceptar'){ //si se acepta
  7.  
  8. include ("conexion.php");
  9.  
  10.     $url = $_GET['url'];
  11.     $desc = $_GET['desc'];
  12.     $tuno = $_GET['tuno'];
  13.     $tdos = $_GET['tdos'];
  14.     $login = $_SESSION['nombre'];
  15.     $tipousuario = $_SESSION['tipo'];
  16.  
  17. ....

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 10/05/2010, 08:06
 
Fecha de Ingreso: noviembre-2006
Mensajes: 82
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: action en el propio formulario

Gracias por la respuesta. Ahora lo probaré y os comento.

Y en el "FORM action=" qué debería poner?
  #4 (permalink)  
Antiguo 10/05/2010, 08:22
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 15 años, 8 meses
Puntos: 87
Respuesta: action en el propio formulario

Hola tram,

No se si te entiendo bien, pero si quieres q una vez q aceptes o rechaces un sitio se cargue tu archivo "sitios_pendientes.php" actualizado, puedes poner un:

href("location: sitios_pendientes.php");

en tu archivo "admin_insdel_sitio.php" para q asi se redireccione automaticamente.

espero q te sirva.

Saludos.
  #5 (permalink)  
Antiguo 10/05/2010, 08:32
 
Fecha de Ingreso: noviembre-2006
Mensajes: 82
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: action en el propio formulario

Cita:
Iniciado por quike88 Ver Mensaje
Hola tram,

No se si te entiendo bien, pero si quieres q una vez q aceptes o rechaces un sitio se cargue tu archivo "sitios_pendientes.php" actualizado, puedes poner un:

href("location: sitios_pendientes.php");

en tu archivo "admin_insdel_sitio.php" para q asi se redireccione automaticamente.

espero q te sirva.

Saludos.


Hmm creo que no me he explicado demasiado bien jeje lo siento.
Me refería a que tras dar al botón de Aceptar o Rechazar, no haga "action=admin_insdel_sitio.php", si no que lo haga en el propio archivo "sitios_pendientes.php".
Es decir yo tengo el listado:

Web 1 - Aceptar / Rechazar
Web 2 - Aceptar / Rechazar
Web 3 - Aceptar / Rechazar
....

Y si acepto Web 1, quiero que se actualice "sitios_pendientes.php" (la propia página donde estoy), y que aparezca:

Web 2 - Aceptar / Rechazar
Web 3 - Aceptar / Rechazar
....

en vez de ir a "admin_insdel_sitio.php".
  #6 (permalink)  
Antiguo 10/05/2010, 08:41
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 15 años, 8 meses
Puntos: 87
Respuesta: action en el propio formulario

ah ok, proba con lo que te digo, en vez de:

echo "El sitio ha sido aceptado.";
$ez.="<a href=\"admin_sitios_pendientes.php\">Atrás</a>";
echo $ez;

le pones:

href("location: sitios_pendientes.php");

y asi funcionara como quieres.

Y si quieres hacerlo en 1 solo archivo en lugar de utilizar 2, lo haces como te dice Adler y en el action le pones sitios_pendientes.php.

Saludos
  #7 (permalink)  
Antiguo 10/05/2010, 09:00
 
Fecha de Ingreso: noviembre-2006
Mensajes: 82
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: action en el propio formulario

Ok muchas gracias a los dos.

Etiquetas: propio, formulario, acciones
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 22:41.