Foros del Web » Programando para Internet » PHP »

Duda botón editar en form

Estas en el tema de Duda botón editar en form en el foro de PHP en Foros del Web. Buenas. Primero felicitaros por este maravilloso foro. Llevo muchos meses entrando para solucionar dudas y es de lo mejorcito que hay por la red. El ...
  #1 (permalink)  
Antiguo 22/02/2012, 04:11
 
Fecha de Ingreso: febrero-2012
Mensajes: 3
Antigüedad: 12 años, 2 meses
Puntos: 0
Duda botón editar en form

Buenas. Primero felicitaros por este maravilloso foro. Llevo muchos meses entrando para solucionar dudas y es de lo mejorcito que hay por la red. El caso es que tengo un problemilla y no le encuentro solución, a ver si me podríais ayudar.
Tengo dos páginas web, Página1.php y Página2.php. En la 1º tengo un form que envia los datos a la 2º. Ésta, procesa los datos y los envía por mail, al mismo tiempo que los devuelve a la página1.php para listarlos debajo del formulario.
Mi problema está en que cuando devuelve los campos a página1.php y los lista quisiera que al lado de los campos apareciera un boton Editar, que al darle me cargara esos datos en el form para así modificarlos.
Este es parte de mi código:
// FORMULARIO PAGINA1.PHP
<!-- FORMULARIO -->
<form id="formulario" name="formulario" onsubmit="return validar()" method="post" action="recoger_form3.php" enctype="multipart/form-data">
<input id="nombre" type="text" name="nombre" size="15" id="nombre"/>
<input id="apellidos" type="text" name="apellidos" size="15" id="apellidos"/>
<input id="DNI" type="text" name="DNI" size="15" id="dni"/>

//PROCESO PAGINA2.PHP
// Campos del formulario
$nombre =$_POST['nombre'];
$apellidos =$_POST['apellidos'];
$dni =$_POST['dni'];
// Crear LISTADO
<form name="listado" action="pagina1.php" method="post" enctype="multipart/form-data">
<input type="hidden" value="<?php echo $nombre ;?>" name="nombre" />
<input type="hidden" value="<?php echo $apellidos;?>" name="apellidos" />
<input type="hidden" value="<?php echo $dni;?>" name="dni" />

<script>
document.listado.submit();
</script>

Hasta aquí todo perfecto, pero no sé ahora como y donde crear el boton editar para que me cargue en pag1.php los datos de la lista y así poder modificarlos...
Muchas Gracias.
  #2 (permalink)  
Antiguo 22/02/2012, 07:52
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Duda botón editar en form

Pero tu listado esta en pag2.php no en la uno, en pag1.php solo tenes el formulario de carga, y en el pag2.php no listas nada porque son todos input hidden. La verdad que es raro lo que intentas hacer. Ademas el action de pag1.php es recoger_form3.php del cual no sabemos nada, y no va nunca a pag2.php

El codigo es muy confuso. Si lo podes mejorar te podemos llegar a dar una mano.
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #3 (permalink)  
Antiguo 22/02/2012, 09:14
 
Fecha de Ingreso: febrero-2012
Ubicación: En mi propio mundo
Mensajes: 73
Antigüedad: 12 años, 2 meses
Puntos: 23
Respuesta: Duda botón editar en form

La manera mas fácil para hacer eso que quieres es mediante javascript + ajax.

Mediante php hay que complicarse mas, tendrías que añadir a la pagina1 prácticamente el mismo código que en la página 2 pero añadiendo un boton submit (el boton editar) que envie los datos del formulario con los campos ocultos.
Añadimos al formulario con campos ocultos un campo nuevo llamado por ejemplo control y que si su valor = 1 significa que hemos hecho click en editar.
Tras esto solo tendríamos que modificar los campos del formulario invisible para que el value de estos campos sean los recogidos por $_post siempre y cuando la variable control sea = a 1.

Serías mas fácil haciendo todo lo que haces con la página 2 en la página 1.
  #4 (permalink)  
Antiguo 22/02/2012, 09:25
 
Fecha de Ingreso: febrero-2012
Mensajes: 3
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Duda botón editar en form

TIenes razón, tengo mal puesto el nombre en el action XD

En pagina1.php tengo esto:
// FORMULARIO
<form id="formulario" name="formulario" onsubmit="return validar()" method="post" action="pagina2.php">
<input id="nombre" type="text" name="nombre" size="15" id="nombre"/>
<input id="apellidos" type="text" name="apellidos" size="15" id="apellidos"/>
<input id="DNI" type="text" name="DNI" size="10" id="dni"/>

Y esto todo es pagina2.php
// RECIBO LOS DATOS POR POST
$nombre =$_POST['nombre'];
$apellidos =$_POST['apellidos'];
$dni =$_POST['dni'];

//CREO UN LISTADO CON UN FORMULARIO OCULTO CON LOS CAMPOS QUE TRAJE ANTERIORMENTE POR POST, Y LO ENVÍO A pagina1.php
// Crear LISTADO
<form name="listado" action="pagina1.php" method="post" enctype="multipart/form-data">
<input type="hidden" value="<?php echo $nombre ;?>" name="nombre" />
<input type="hidden" value="<?php echo $apellidos;?>" name="apellidos" />
<input type="hidden" value="<?php echo $dni;?>" name="dni" />

//CON EL SCRIPT VUELVE A PAGINA1.PHP Y LISTA LOS CAMPOS DEL FORM ANTERIOR.
<script>
document.listado.submit();
</script>

Hasta aquí todo va bien. Tengo en pagina1 el formulario y debajo en una fila, los datos que procesé por post y que a través del 2º formulario traje para aquí.
Lo que busco ahora es, al lado de este listado, colocar un botón llamado editar. QUe al darle, me cargue esos campos de la fila en el formulario para modificar algun dato.
Es un poco liosa la explicación pero es más sencillo d elo que parece. Sólo que no se como se crean botones para modificar campos o filas sin trabajar con bases de datos, ya que no estoy guardando los campos en una tabla si no en otro archivo (página).
Saludos y gracias
  #5 (permalink)  
Antiguo 22/02/2012, 10:02
 
Fecha de Ingreso: febrero-2012
Ubicación: En mi propio mundo
Mensajes: 73
Antigüedad: 12 años, 2 meses
Puntos: 23
Respuesta: Duda botón editar en form

Aquí te pongo un ejemplo funcionando de lo que te explicaba ,a ver si asi me entiendes mejor:

(pagina1.php)
Código PHP:
<?php 
//Falta comprobar si las variables existen
$nombre =$_POST['nombre'];
$apellidos =$_POST['apellidos'];
$dni $_POST['dni'];


if ( isset (
$_POST[control]))
{
    
$control $_POST[control];
}
?>
<h1>FORMULARIO</h1> 
<?php
if( isset($control) && $control == 1)
{
    echo
'<form id="formulario" name="formulario" onsubmit="return validar()" method="post" action="pagina2.php">
    <input id="nombre" type="text" name="nombre" size="15" id="nombre" value="'
.$nombre.'"/>
    <input id="apellidos" type="text" name="apellidos" size="15" id="apellidos" value="'
.$apellidos.'"/>
    <input id="DNI" type="text" name="dni" size="10" value="'
.$dni.'"/>
    <input type="submit" />
    </form>'
;
    
}else
{
    echo
'<form id="formulario" name="formulario" onsubmit="return validar()" method="post" action="pagina2.php">
    <input id="nombre" type="text" name="nombre" size="15" id="nombre"/>
    <input id="apellidos" type="text" name="apellidos" size="15" id="apellidos"/>
    <input id="DNI" type="text" name="dni" size="10" id="dni"/>
    <input type="submit" />
    </form>'
;
}

?>
<form name="listado" action="<?php echo $_SERVER['PHP_SELF'?>" method="post">
<input type="hidden" value="<?php echo $nombre ;?>" name="nombre" />
<input type="hidden" value="<?php echo $apellidos;?>" name="apellidos" />
<input type="hidden" value="<?php echo $dni;?>" name="dni" />
<input type="hidden" value="1" name="control" />
<input type="submit" value="Editar" />
</form>
pagina2.php
Código PHP:
<?php 
$nombre 
=$_POST['nombre'];
$apellidos =$_POST['apellidos'];
$dni =$_POST['dni'];
?>
//CREO UN LISTADO CON UN FORMULARIO OCULTO CON LOS CAMPOS QUE TRAJE ANTERIORMENTE POR POST, Y LO ENVÍO A pagina1.php
// Crear LISTADO
<form name="listado" action="pagina1.php" method="post" enctype="multipart/form-data">
<input type="hidden" value="<?php echo $nombre ;?>" name="nombre" />
<input type="hidden" value="<?php echo $apellidos;?>" name="apellidos" />
<input type="hidden" value="<?php echo $dni;?>" name="dni" />

//CON EL SCRIPT VUELVE A PAGINA1.PHP Y LISTA LOS CAMPOS DEL FORM ANTERIOR.

<script>
document.listado.submit();
</script>
  #6 (permalink)  
Antiguo 22/02/2012, 10:17
 
Fecha de Ingreso: febrero-2012
Mensajes: 3
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Duda botón editar en form

Gracias Fierox. Voy a probar eso que me has puesto. Por lo que estoy viendo, varían muy pocas cosas.
Eso que me has puesto, es todo php verdad? de Javascript no controlo aún y necesito hacerlo preferiblemente en php.
Voy a ello

Una duda que me acaba de surgir:
¿Por qué al principio de pagina1.php pones esto? Lo pnes solo para que los valide o algo más?
$nombre =$_POST['nombre'];
$apellidos =$_POST['apellidos'];
$dni = $_POST['dni'];

Última edición por tuxina; 22/02/2012 a las 10:57
  #7 (permalink)  
Antiguo 22/02/2012, 11:48
 
Fecha de Ingreso: febrero-2012
Ubicación: En mi propio mundo
Mensajes: 73
Antigüedad: 12 años, 2 meses
Puntos: 23
Respuesta: Duda botón editar en form

Si, está basado en tu código con algunas modificaciones para agregarle lo que buscabas ;)

Etiquetas: formulario
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:20.