Foros del Web » Programando para Internet » PHP »

Problema con formulario

Estas en el tema de Problema con formulario en el foro de PHP en Foros del Web. Buenas mi problema es el siguiente. Tengo un formulario que me va muestrando los valores de los campos de un registro segun el codigo que ...
  #1 (permalink)  
Antiguo 13/06/2009, 17:02
 
Fecha de Ingreso: noviembre-2004
Mensajes: 223
Antigüedad: 20 años
Puntos: 0
Problema con formulario

Buenas mi problema es el siguiente. Tengo un formulario que me va muestrando los valores de los campos de un registro segun el codigo que le paso:

while ($row=mysql_fetch_array($result))
{
echo "<b> Codigo: </b>";
echo "<input type=text name=id style='width:50' class='style_input' value=".$row["id"].">";
echo "<b> Sede: </b>";
echo "<input type=text name=sede style='width:90' class='style_input' value='".$row["sede"]."'>";


Como veis creo el textbox con el valor correspondiente.Ok?

Ahora mi problema es el siguiente. Como hago la funcion modificar en el mismo formulario. Si el usuario modifica cualquier cosa de los campos mostrados, pues que se guarde al darle al boton modificar. No se si me explico.Tendría que llamar a otro o en este mismo lo puedo hacer con un boton. Es que si lo hago en el mismo formulario me ahorro otro y a parte como le paso todos los valores al otro formulario..
  #2 (permalink)  
Antiguo 13/06/2009, 17:59
 
Fecha de Ingreso: noviembre-2004
Mensajes: 223
Antigüedad: 20 años
Puntos: 0
Respuesta: Problema con formulario

Necesito ayuda.
  #3 (permalink)  
Antiguo 13/06/2009, 18:19
Avatar de gioramies  
Fecha de Ingreso: febrero-2008
Ubicación: Colombia
Mensajes: 217
Antigüedad: 16 años, 8 meses
Puntos: 14
Respuesta: Problema con formulario

Hola Juan Carlos, explícate un poco mejor para ver si podemos ayudarte.
  #4 (permalink)  
Antiguo 13/06/2009, 18:40
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 17 años
Puntos: 18
Respuesta: Problema con formulario

sabes lo que es mantenimiento de registros es decir altas,bajas y cambios ABC ( insertar,eliminar, actualizar - en sql comandos INSERT,DELETE, UPDATE), entonces si es así sólo tienes que pasarle los valores (campos del formulario html que generas) que cambian a los campos que deseas actualizar con lo que es UPDATE.

suerte.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #5 (permalink)  
Antiguo 13/06/2009, 18:45
 
Fecha de Ingreso: noviembre-2004
Mensajes: 223
Antigüedad: 20 años
Puntos: 0
Respuesta: Problema con formulario

Haber si me ayudais estoy desesperado. Ya no se que hacer. Se perfectamente lo que es borrar añadir pero modificar no lo he echo nunca.

Muestro este codigo:

<?php
include("conectar_bd.php");
$valor=$_GET["id"];
$result=mysql_query("select id,sede,fecha,nombre,tincidencia,estado,descripcio n,observaciones,solucion from incidencias where id= $valor");
while ($row=mysql_fetch_array($result))
{
echo "<b> Codigo: </b>";
echo "<input type=text name=id style='width:50' class='style_input' value=".$row["id"].">";
echo "<b> Sede: </b>";
echo "<input type=text name=sede style='width:90' class='style_input' value='".$row["sede"]."'>";
echo "<b> Fecha: </b>";
echo "<input type=text name=fecha style='width:80' class='style_input' value='".$row["fecha"]."'>";
.........................
...........................
........................

Voy mostrando los campos segun un numero de codigo. Ok? Ahora tengo abajo un boton modificar. Quiero que al darle a modificar guarde los valores de estos campos, por si el usuario los a modificado. No se como hacerlo. No se si tengo que pasar todos los valores de los campos a otro formulario y a partir de hay actualizar los valores o en el mismo formulario poderlo hacer.

Muchas gracias

  #6 (permalink)  
Antiguo 13/06/2009, 18:57
 
Fecha de Ingreso: noviembre-2004
Mensajes: 223
Antigüedad: 20 años
Puntos: 0
Respuesta: Problema con formulario

Tener en cuenta que este usuario en los campos mostrados puede modificar y lo que quiero que al darle al boton se actualicen dichos campos. Como lo hago. Tengo que pasar todos los valores de los campos a otro formulario llamado actualizar.php y hay coger los valores y actualizar. Pero no se como hacerlo.
  #7 (permalink)  
Antiguo 13/06/2009, 19:00
Avatar de gioramies  
Fecha de Ingreso: febrero-2008
Ubicación: Colombia
Mensajes: 217
Antigüedad: 16 años, 8 meses
Puntos: 14
Respuesta: Problema con formulario

Hola Juan Carlos. ¿Podrías plantear todo el proceso? Como se lleva a cabo y que es lo que quieres hacer de forma global en tu aplicación. Podría aconsejarte como hacerlo de una forma mucho más fácil. Saludos
  #8 (permalink)  
Antiguo 13/06/2009, 19:07
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 17 años
Puntos: 18
Respuesta: Problema con formulario

a ver comcemos para poder hacer el select tú le pasas las variables, es lo mismo que tienes que hacer para el comando UPDATE, si todavía desconoces esta función entonces dale una repasada a algún manual.

suerte.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #9 (permalink)  
Antiguo 13/06/2009, 19:08
 
Fecha de Ingreso: noviembre-2004
Mensajes: 223
Antigüedad: 20 años
Puntos: 0
Respuesta: Problema con formulario

Mira tengo un archivo llamado incidetalle.php. Donde muestra todos los valores de los campos que pertenece a incidencias, recibe el codigo de incidencia de otro formulario:

<?php
include("conectar_bd.php");
$valor=$_GET["id"];
$result=mysql_query("select id,sede,fecha,nombre,tincidencia,estado,descripcio n,observaciones,solucion from incidencias where id= $valor");
while ($row=mysql_fetch_array($result))
{
echo "<b> Codigo: </b>";
echo "<input type=text name=id style='width:50' class='style_input' value=".$row["id"].">";
echo "<b> Sede: </b>";
echo "<input type=text name=sede style='width:90' class='style_input' value='".$row["sede"]."'>";
echo "<b> Fecha: </b>";
echo "<input type=text name=fecha style='width:80' class='style_input' value='".$row["fecha"]."'>";
echo "<br></br>";
echo "<b> Nombre: </b>";
echo "<input type=text name=nombre style='width:110' class='style_input' value='".$row["nombre"]."'>";
echo "<br></br>";
echo "<b> Tipo incidencia: </b>";
echo "<input type=text name=tincidencia style='width:100' class='style_input' value='".$row["tincidencia"]."'>";
echo "<b> Estado: </b>";
echo "<input type=text name=estado style='width:100' class='style_input' value='".$row["estado"]."'>";
echo "<br></br>";
echo "<b> Descripcion: <b>";
echo "<br><textarea name=tdescripcion cols='60' rows='5' class='style_input' id='txtdescripcion'>".$row["descripcion"]."</textarea></br>";
echo "Observaciones:";
echo "<br><textarea name=observaciones cols='60' rows='5' class='style_input' id='txtdescripcion'>".$row["observaciones"]."</textarea></br>";
echo "Solucion:";
echo "<br><textarea name=solucion cols='60' rows='5' class='style_input' id='txtdescripcion'>".$row["solucion"]."</textarea></br>";
}

?>


Muestra todos los valores en textbox. Ok? Lo que quiero que aquí pueda modificar o borrar el registro. Entonces debajo he puesto dos botones:

<input type="button" name="btnnuevainci" id="btnnuevainci" style='width:130' class="btnnuevainci" value="Modificar Incidencia" onClick=
/>
</td>
<td><input type="button" name="btnnuevainci2" id="btnnuevainci2" class="btnnuevainci" value="Borrar Incidencia" onClick="opcion();" /></td>
</tr>

El borrado lo hago perfectamente pero la modificacion no se como hacerla.

Gracias.
  #10 (permalink)  
Antiguo 13/06/2009, 19:10
 
Fecha de Ingreso: noviembre-2004
Mensajes: 223
Antigüedad: 20 años
Puntos: 0
Respuesta: Problema con formulario

Para borrar es secillo porque le pasas el codigo de incidencia y ya esta. Lo borras pero para actualizar no se como hacerlo. No se si tengo que pasar todos los valores a otro formulario, rescatarlos y actualizarlos.
  #11 (permalink)  
Antiguo 13/06/2009, 19:13
Avatar de gioramies  
Fecha de Ingreso: febrero-2008
Ubicación: Colombia
Mensajes: 217
Antigüedad: 16 años, 8 meses
Puntos: 14
Respuesta: Problema con formulario

Hola. Después de analizar el código que colocaste, se puede decir a ciencia cierta que lo que necesitas es conocer y aprender un poco sobre el comando UPDATE de MySql, sí como lo ha dicho argy.

En el botón de Modificar debes ejecutar una similar a la que ejecutas en el botón de Borrar, sólo que no utilizarás el comando DELETE sino UPDATE. Espero haberte ayudado. Saludos
  #12 (permalink)  
Antiguo 13/06/2009, 19:15
Avatar de gioramies  
Fecha de Ingreso: febrero-2008
Ubicación: Colombia
Mensajes: 217
Antigüedad: 16 años, 8 meses
Puntos: 14
Respuesta: Problema con formulario

Aquí hay un lugar donde puedes leer brevemente el tema.

Última edición por gioramies; 13/06/2009 a las 19:17 Razón: Corregir
  #13 (permalink)  
Antiguo 13/06/2009, 19:16
 
Fecha de Ingreso: noviembre-2004
Mensajes: 223
Antigüedad: 20 años
Puntos: 0
Respuesta: Problema con formulario

Pero como le pasas los valores de todos los campos al otro archivo.php llamado modificar.php.
  #14 (permalink)  
Antiguo 13/06/2009, 19:19
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 17 años
Puntos: 18
Respuesta: Problema con formulario

insisto en que debes de leer la definición de este comando sql (UPDATE), entonces es lo mismo que hacer un delete.

Código :
Ver original
  1. UPDATE t SET c1="nuevo valor", c2="otro nuevo valor" WHERE cclave='valor'";

donde 'nuevo valor','otro nuevo valor', son los valores que necesitas actualizar, estos son los nombres de los campos, en el where se utiliza la condición que se utiliza para el cambio.

dicho en otras palabras necesitamos hacer algunos cambios a un registro en específico.

suerte.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #15 (permalink)  
Antiguo 13/06/2009, 19:20
Avatar de gioramies  
Fecha de Ingreso: febrero-2008
Ubicación: Colombia
Mensajes: 217
Antigüedad: 16 años, 8 meses
Puntos: 14
Respuesta: Problema con formulario

Coloca todo el código html que genera tu sitio web, desde donde inicia la etiqueta <form>, para poder estudiarlo mejor. Al parecer, o eso creo, el inconveniente se encuentra en el método del action del formulario. Eso parece.
  #16 (permalink)  
Antiguo 13/06/2009, 19:31
 
Fecha de Ingreso: noviembre-2004
Mensajes: 223
Antigüedad: 20 años
Puntos: 0
Respuesta: Problema con formulario

Mirar en deleteinci.php tengo esto:

<?
$valor=$_GET["id"];
//echo "$valor";
include ("conectar_bd.php");
$sSQL="Delete From incidencias Where id='$valor'";
mysql_query($sSQL);
include("inci.php");
?>

Lo unico que le paso es el codigo de incidencia del otro formulario y lo borra. pero el problema está en actualizar. Como le paso todos los campos a modiinci.php del anterior formulario, para que los actualice. Haber si me entendeis asin.
  #17 (permalink)  
Antiguo 13/06/2009, 19:37
Avatar de gioramies  
Fecha de Ingreso: febrero-2008
Ubicación: Colombia
Mensajes: 217
Antigüedad: 16 años, 8 meses
Puntos: 14
Respuesta: Problema con formulario

con el método POST, de esta forma:

Código:
$valor=$_POST["id"];
y así con cada campo: nombre, sede, fecha, etc.

y luego utilizas UPDATE en vez de DELETE.


Por otra parte, quisiera ver los atributos de formulario, estos:

Código HTML:
<form id="..." action="..." method="..." ... >...</form> 
¿podrías colocarlo?
  #18 (permalink)  
Antiguo 13/06/2009, 19:39
 
Fecha de Ingreso: noviembre-2004
Mensajes: 223
Antigüedad: 20 años
Puntos: 0
Respuesta: Problema con formulario

<form id="form2" name="form1" method="post" action= "modiinci.php">


No coge los valores como tú dices. Yo sabía que asín se cogían pero no.
  #19 (permalink)  
Antiguo 13/06/2009, 19:48
Avatar de gioramies  
Fecha de Ingreso: febrero-2008
Ubicación: Colombia
Mensajes: 217
Antigüedad: 16 años, 8 meses
Puntos: 14
Respuesta: Problema con formulario

Replanteemos el problema. Tu necesitas que se actualice y se borre utilizando el mismo formulario, para ello utilizas botones con el evento onclick, ¿utilizas ajax? porque si tu formulario está declarado así:

<form id="form2" name="form1" method="post" action= "modiinci.php">

, sólo se ejecutarían los comandos del archivo modiinci.php cuando se presionase un input tipo submit, de lo contrario no. Cuando utilizas el evento onclick deberías hacerlo con ajax si quieres que se ejecute una función diferente cuando oprimas el botón respectivo.

Última edición por gioramies; 13/06/2009 a las 19:56
  #20 (permalink)  
Antiguo 13/06/2009, 19:48
 
Fecha de Ingreso: noviembre-2004
Mensajes: 223
Antigüedad: 20 años
Puntos: 0
Respuesta: Problema con formulario

En modiinci.php pongo esto y no muestra nada:

<?
$id=$_GET["id"];
$sede=$_POST["sede"];
$fecha=$_POST["fecha"];
$nombre=$_POST["nombre"];
$tincidencia=$_POST["tincidencia"];
$estado=$_POST["estado"];
$descripcion=$_POST["descripcion"];
$observaciones=$_POST["observaciones"];
$solucion=$_POST["solucion"];
echo "$id";
echo $sede;
echo $fecha;
echo $nombre;
echo $tincidencia;
?>

Habrá que pasar los valores por parametros. Todos los campos por parametros.No?
  #21 (permalink)  
Antiguo 13/06/2009, 19:52
Avatar de gioramies  
Fecha de Ingreso: febrero-2008
Ubicación: Colombia
Mensajes: 217
Antigüedad: 16 años, 8 meses
Puntos: 14
Respuesta: Problema con formulario

¿y que botón ejecuta la acción de enviar el formulario al servidor? Colócalo completo por favor.
  #22 (permalink)  
Antiguo 13/06/2009, 19:55
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 17 años
Puntos: 18
Respuesta: Problema con formulario

mmm parece que no estás entendiendo o no sabemos explicarte mu bien, pero cualquiera sea el caso mejor vamos a un ejemplo práctico diría un esqueleto jajaja.

form.php
Código :
Ver original
  1. <form action="procesador.php" action="post">
  2. <input type="text" name="campo" value="valor que será modificado" />
  3. <input type="hidden" name="id" value="id" />
  4. <input type="submit" name="actualiza" value="actualizar" />
  5. </form>
procesador.php
Código :
Ver original
  1. <?php
  2. if(isset($_POST['campo']) and isset($_POST['id']))
  3. {
  4. if(!empty($_POST['campo']) and isset($_POST['id']))
  5. {
  6. //filtros y vallidaciones
  7. //conexion a bd
  8. $campo=$_POST['campo'];
  9. $id=$_POST['id'];
  10. $sql="UPDATE tabla SET campo='$campo WHERE id='$id'";
  11. mysql_query($sql,$conn);
  12. if(mysql_affected_rows()>0)
  13. {
  14. //se actualizó
  15. }
  16. else
  17. {
  18. //no se actualizó
  19. }
  20. }
  21. }
  22. else
  23. {
  24. //no existen variables
  25. }
  26. ?>
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #23 (permalink)  
Antiguo 13/06/2009, 19:59
 
Fecha de Ingreso: noviembre-2004
Mensajes: 223
Antigüedad: 20 años
Puntos: 0
Respuesta: Problema con formulario

Ya lo he podido solucionar. Sabes cual era el problema que en el boton que existe en el archivo incidetalle.php, llamado modificar tiene que estar en submit y en onclick=<?include('modiinci.php');?>. Tiene que ser include para pasar los valores a modiinci.php, que es donde se realiza el update.

VAya vaya la que hemos liao.
  #24 (permalink)  
Antiguo 13/06/2009, 20:05
Avatar de gioramies  
Fecha de Ingreso: febrero-2008
Ubicación: Colombia
Mensajes: 217
Antigüedad: 16 años, 8 meses
Puntos: 14
Respuesta: Problema con formulario

Mejor ejemplo no puede haber. Gracias argy.

Ves JUAN CARLOS RB, cuando el <input type="submit" name="actualiza" value="actualizar" /> es presionado se ejecuta procesador.php que recibe los valores de los campos del formulario gracias al action="post".

Si quieres que un mismo formulario te sirva para más de una acción, tienes que utilizar ajax, con el evento onclick en cada botón (Eliminar/Actualizar) para asignar la acción correspondiente cuando se presione alguno de ellos.
  #25 (permalink)  
Antiguo 13/06/2009, 20:07
Avatar de gioramies  
Fecha de Ingreso: febrero-2008
Ubicación: Colombia
Mensajes: 217
Antigüedad: 16 años, 8 meses
Puntos: 14
Respuesta: Problema con formulario

Vaya que si, no comprendí la solución, pero si te funciona déjalo así. 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 21:41.