Foros del Web » Programando para Internet » PHP »

Input type fileee

Estas en el tema de Input type fileee en el foro de PHP en Foros del Web. Hola! Tengo un input type="file" en el cual se cargan imagenes. Lo que me pasa es que cuando quiero modificar una fila por medio de ...
  #1 (permalink)  
Antiguo 05/10/2010, 09:08
 
Fecha de Ingreso: julio-2010
Mensajes: 51
Antigüedad: 13 años, 9 meses
Puntos: 0
Input type fileee

Hola! Tengo un input type="file" en el cual se cargan imagenes.
Lo que me pasa es que cuando quiero modificar una fila por medio de un abm todos los campos se cargan bien pero el file viene vacio lo que me trae como problema que si yo quiero modificar un solo campo y al campo de la imagen no lo toco de todos modos se borra la imagen... se entiende?

Código HTML:
Ver original
  1. <form method="POST" action="MProducto.php">
  2. <input type="hidden" name="id" value="<?php echo $id ?>">
  3. <table border=0>
  4.  
  5. <tr>
  6.     <td>Nombre</td>
  7.     <td><input type="text" size="60" name="nombre" value = "<?php echo $nombre ?>"></td>
  8. </tr>
  9. <tr>
  10.     <td>Precio</td>
  11.     <td><input type="text" name="precio"value = "<?php echo $precio ?>"></td>
  12. </tr>
  13. <tr>
  14.     <td>Imagen</td>
  15.     <td><input type="file" name="imagen" value = "<?php echo $imagen ?>"></td>
  16. </tr>
  17. <tr>
  18.     <td>Descripcion</td>
  19.     <td><textarea name="descripcion" cols="30" rows="5"><?php echo $descripcion ?></textarea></td>
  20. </tr>
  21. </table><br />
  22.  
  23. <div align="center">
  24.  
  25. <input type="submit" name="submit" value ="Modificar">
  26. </div>
  27. </form>

Deberia mostrar el nombre de la imagen en el input type file pero llega vacio.
  #2 (permalink)  
Antiguo 05/10/2010, 09:11
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Input type fileee

En la etiqueta de apertura del formulario falta enctype="multipart/form-data" que es lo que te permite enviar archivos por medio del formulario.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 05/10/2010, 09:15
 
Fecha de Ingreso: julio-2010
Mensajes: 51
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Input type fileee

Mmm.. si pongo es en el form no me modifica nada!
  #4 (permalink)  
Antiguo 05/10/2010, 09:26
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Input type fileee

no se puede llenar un input file por defecto, yo tengo una solucion a eso con javascript primero tengo un archivo que sube la imagen hasta ahi todo bien, pero en el archivo que modifica el registro hago lo siguiente.

Código PHP:
            <tr>
                <td class="celda4" align="right" valign="top">
                    <p class="style">Link de la imagen:</p>
                </td>
                <td class="celda3" align="left" valign="top" >
                    <input type="text" name="imagen" id="text" value="<?php echo $reg['imagen'];?>" size="40" />                    
                </td>
            </tr>
            <tr>
                <td class="celda4" align="right" valign="top">
                    <p class="style">Subir imagen</p>
                </td>
                <td class="celda3" align="left" valign="top" >
                    <input type="file" name="upload" id="file" disabled="disabled"/>
                    <input name="checkbox1" type="checkbox" id="checkbox1" onChange="document.form1.text.disabled = true; document.form1.file.disabled = false; text.disabled = this.checked; file.disabled = !this.checked;" value="checkbox"/>                    
                </td>
            </tr>
lo que hace este código es tener dos campos uno text y otro file de este modo la información de la base de datos llega asi



de este modo el script habilita uno y deshabilita el otro, de este modo si ya tienes una imagen subida, toma la ruta que tiene la imagen y no altera nada a menos que habilites el file y quieras subir una nueva imagen.
  #5 (permalink)  
Antiguo 05/10/2010, 09:28
 
Fecha de Ingreso: julio-2010
Mensajes: 51
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Input type fileee

Muchisimas gracias! voy a probar con eso! parece muy logico! gracias en verdad!
  #6 (permalink)  
Antiguo 06/10/2010, 06:59
 
Fecha de Ingreso: julio-2010
Mensajes: 51
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Input type fileee

Hola memoadian! Estuve probando el codigo y no me funciona del todo... es decir, cuando cargo una imagen nueva la inserta bien, pero si dejo la misma me queda el campo imagen de la base de datos vacio, es como si se eliminara la imagen que estaba. A vos te funciona bien o te pasa lo mismo?
Estuve probando cambiando un par de cosas pero nada...
Gracias!
  #7 (permalink)  
Antiguo 06/10/2010, 08:21
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Input type fileee

A mi me funciona bien, checa que la consulta cuando dejas el campo en text lleve algun valor, ya que lo mas seguro es que sea ese el problema, que no tenga un value y que tu archivo que hace el update lo tome como vacio.

yo siempre hago asi
Código PHP:
Ver original
  1. $sql = "UPDATE set bla bla bla ".$_POST['value']."";
  2. echo $sql;

asi me fijo que todas las variables tengan valores, y si los tienen, pues ya procedo a probar un update.
  #8 (permalink)  
Antiguo 07/10/2010, 07:11
 
Fecha de Ingreso: julio-2010
Mensajes: 51
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Input type fileee

Te cuento, cuando muesta el input type text muestra el value... es decir me queda como en el ej tuyo... pero cuando presiono modificar llega vacio! no entiendo porq.. deberia estar bien! adjunto codigo:

Código HTML:
Ver original
  1. <?php
  2. include_once("lib.php");
  3. include_once("Clases.php");
  4. $prod=$_REQUEST['md'];
  5.  
  6.  
  7. ?>
  8. <div align="center">
  9. <?php
  10. $producto=new producto($_REQUEST['md']);
  11. // obtiene todos los clientes para despues mostrarlos
  12.     $id=$producto->getId(); // instancio la clase cliente pasandole el nro de cliente, de esta forma lo busca
  13.     $nombre=$producto->getNombre();     // obtengo el nombre
  14.     $precio=$producto->getPrecio(); // obtengo el apellido
  15.     $imagen=$producto->getImagen();     // obtengo la fecha de nacimiento
  16.     $descripcion=$producto->getDescripcion();           // obtengo su peso
  17. ?>
  18. <div>
  19. <form method="POST" action="MProducto.php" name="form1" >
  20. <input type="hidden" name="id" value="<?php echo $id ?>">
  21. <table border=0>
  22.  
  23. <tr>
  24.     <td>Nombre</td>
  25.     <td><input type="text" size="60" name="nombre" value = "<?php echo $nombre ?>"></td>
  26. </tr>
  27. <tr>
  28.     <td>Precio</td>
  29.     <td><input type="text" name="precio"value = "<?php echo $precio ?>"></td>
  30. </tr>
  31.  <tr>
  32.     <td align="right" valign="top">
  33.     <p>Imagen:</p>
  34.     </td>
  35.     <td align="left" valign="top" >
  36.     <input type="text" name="imagen" id="text" value="<?php echo $imagen ?>" size="40" />                    
  37.     </td>
  38. </tr>
  39. <tr>
  40.    <td align="right" valign="top">
  41.    <p>Subir imagen</p>
  42.    </td>
  43.    <td align="left" valign="top" >
  44.    <input type="file" name="upload" id="file" disabled="disabled"/>
  45.    <input name="checkbox1" type="checkbox" id="checkbox1" onchange="document.form1.text.disabled = true; document.form1.file.disabled = false; text.disabled = this.checked; file.disabled = !this.checked;" value="checkbox"/>                    
  46.    </td>
  47. </tr>
  48. <tr>
  49.     <td>Descripcion</td>
  50.     <td><textarea name="descripcion" cols="30" rows="5"><?php echo $descripcion ?></textarea></td>
  51. </tr>
  52. </table><br />
  53.  
  54. <div align="center">
  55.  
  56. <input type="submit" name="submit" value ="Modificar">
  57. </div>
  58. </form>
  59. </div>

Y en el modificar:

Código PHP:
Ver original
  1. <form action="modiProducto.php" onsubmit="funcion()" method="POST" >
  2. <table border="0">
  3.   <tr>
  4.     <td><span class="style1">Aumentar precios</span></td>
  5.     <td><input type="text" size="3" name="porcentaje"/> <span class="style2">%</span></td>
  6.   </tr>
  7. </table>
  8. <input type="submit" value="Aceptar" />
  9. <?php
  10. if (isset($_POST['submit'])&&is_numeric($_POST['id'])) // si presiono el boton y es modificar
  11. {
  12.     $producto=new Producto($_POST['id']);
  13.    
  14.     $producto->setNombre($_POST['nombre']); // setea los datos
  15.     $producto->setPrecio($_POST['precio']);
  16.     $producto->setImagen($_POST['imagen']);
  17.     $producto->setImagen($_POST['upload']);
  18.     $producto->setDescripcion($_POST['descripcion']);
  19.     $producto->updateProducto(); // inserta y muestra el resultado
  20.    
  21. }
  22.    
  23.  
  24. $producto=new Producto();
  25. $producto= $producto->getProducto(); // obtiene todos los productos para despues mostrarlos
  26.  
  27. echo      '<br/><br/><table border=1">'
  28.           .'<td class="title">Nombre</td>'
  29.           .'<td class="title">Precio</td>'
  30.           .'<td class="title">Imagen</td>'
  31.           .'<td class="title">Descripcion</td>'
  32.           .'<td class="title">Modificar</td>';
  33.          
  34. while ($row=mysql_fetch_Assoc($producto)) // recorre los productos uno por uno hasta el fin de la tabla
  35. {
  36.     echo '<tr>'
  37.           .'<td class="nombre">'.$row['MedidaNombre'] .'</td>'
  38.           .'<td>'.$row['MedidaPrecio'] .'</td>'
  39.           .'<td>'.$row['Img_name'] .'</td>'
  40.           .'<td class="nombre">'.$row['MedidaDescripcion'] .'</td>'
  41.           .'<td><a href="modificarProducto.php?md='.$row['MedidaId'].'">Modificar</a></td>'
  42.           .'</tr>';
  43. }
  44. echo '</table>';
  45.  
  46. ?>
  47. </form>
  48. </div>
  49. </body>

Por favor si podes orientarme t agradezco mucho! no estoy viendo cual es el error!
  #9 (permalink)  
Antiguo 07/10/2010, 07:12
 
Fecha de Ingreso: julio-2010
Mensajes: 51
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Input type fileee

Te cuento, cuando muesta el input type text muestra el value... es decir me queda como en el ej tuyo... pero cuando presiono modificar llega vacio! no entiendo porq.. deberia estar bien! adjunto codigo:

Código HTML:
Ver original
  1. <?php
  2. include_once("lib.php");
  3. include_once("Clases.php");
  4. $prod=$_REQUEST['md'];
  5.  
  6.  
  7. ?>
  8. <div align="center">
  9. <?php
  10. $producto=new producto($_REQUEST['md']);
  11. // obtiene todos los clientes para despues mostrarlos
  12.     $id=$producto->getId(); // instancio la clase cliente pasandole el nro de cliente, de esta forma lo busca
  13.     $nombre=$producto->getNombre();     // obtengo el nombre
  14.     $precio=$producto->getPrecio(); // obtengo el apellido
  15.     $imagen=$producto->getImagen();     // obtengo la fecha de nacimiento
  16.     $descripcion=$producto->getDescripcion();           // obtengo su peso
  17. ?>
  18. <div>
  19. <form method="POST" action="MProducto.php" name="form1" >
  20. <input type="hidden" name="id" value="<?php echo $id ?>">
  21. <table border=0>
  22.  
  23. <tr>
  24.     <td>Nombre</td>
  25.     <td><input type="text" size="60" name="nombre" value = "<?php echo $nombre ?>"></td>
  26. </tr>
  27. <tr>
  28.     <td>Precio</td>
  29.     <td><input type="text" name="precio"value = "<?php echo $precio ?>"></td>
  30. </tr>
  31.  <tr>
  32.     <td align="right" valign="top">
  33.     <p>Imagen:</p>
  34.     </td>
  35.     <td align="left" valign="top" >
  36.     <input type="text" name="imagen" id="text" value="<?php echo $imagen ?>" size="40" />                    
  37.     </td>
  38. </tr>
  39. <tr>
  40.    <td align="right" valign="top">
  41.    <p>Subir imagen</p>
  42.    </td>
  43.    <td align="left" valign="top" >
  44.    <input type="file" name="upload" id="file" disabled="disabled"/>
  45.    <input name="checkbox1" type="checkbox" id="checkbox1" onchange="document.form1.text.disabled = true; document.form1.file.disabled = false; text.disabled = this.checked; file.disabled = !this.checked;" value="checkbox"/>                    
  46.    </td>
  47. </tr>
  48. <tr>
  49.     <td>Descripcion</td>
  50.     <td><textarea name="descripcion" cols="30" rows="5"><?php echo $descripcion ?></textarea></td>
  51. </tr>
  52. </table><br />
  53.  
  54. <div align="center">
  55.  
  56. <input type="submit" name="submit" value ="Modificar">
  57. </div>
  58. </form>
  59. </div>

Y en el modificar:

Código PHP:
Ver original
  1. <form action="modiProducto.php" onsubmit="funcion()" method="POST" >
  2. <table border="0">
  3.   <tr>
  4.     <td><span class="style1">Aumentar precios</span></td>
  5.     <td><input type="text" size="3" name="porcentaje"/> <span class="style2">%</span></td>
  6.   </tr>
  7. </table>
  8. <input type="submit" value="Aceptar" />
  9. <?php
  10. if (isset($_POST['submit'])&&is_numeric($_POST['id'])) // si presiono el boton y es modificar
  11. {
  12.     $producto=new Producto($_POST['id']);
  13.    
  14.     $producto->setNombre($_POST['nombre']); // setea los datos
  15.     $producto->setPrecio($_POST['precio']);
  16.     $producto->setImagen($_POST['imagen']);
  17.     $producto->setImagen($_POST['upload']);
  18.     $producto->setDescripcion($_POST['descripcion']);
  19.     $producto->updateProducto(); // inserta y muestra el resultado
  20.    
  21. }
  22.    
  23.  
  24. $producto=new Producto();
  25. $producto= $producto->getProducto(); // obtiene todos los productos para despues mostrarlos
  26.  
  27. echo      '<br/><br/><table border=1">'
  28.           .'<td class="title">Nombre</td>'
  29.           .'<td class="title">Precio</td>'
  30.           .'<td class="title">Imagen</td>'
  31.           .'<td class="title">Descripcion</td>'
  32.           .'<td class="title">Modificar</td>';
  33.          
  34. while ($row=mysql_fetch_Assoc($producto)) // recorre los productos uno por uno hasta el fin de la tabla
  35. {
  36.     echo '<tr>'
  37.           .'<td class="nombre">'.$row['MedidaNombre'] .'</td>'
  38.           .'<td>'.$row['MedidaPrecio'] .'</td>'
  39.           .'<td>'.$row['Img_name'] .'</td>'
  40.           .'<td class="nombre">'.$row['MedidaDescripcion'] .'</td>'
  41.           .'<td><a href="modificarProducto.php?md='.$row['MedidaId'].'">Modificar</a></td>'
  42.           .'</tr>';
  43. }
  44. echo '</table>';
  45.  
  46. ?>
  47. </form>
  48. </div>
  49. </body>

Por favor si podes orientarme t agradezco mucho! no estoy viendo cual es el error!

Etiquetas: input, type
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 01:55.