Foros del Web » Programando para Internet » PHP »

Al actualizar campos file de un form...

Estas en el tema de Al actualizar campos file de un form... en el foro de PHP en Foros del Web. Tengo 4 campos input file (imágenes) en el formulario de actualización de producto. Entonces necesito averigüar si el usuario ha dejado algún campo en blanco ...
  #1 (permalink)  
Antiguo 21/05/2010, 03:09
Avatar de Lr_Darko  
Fecha de Ingreso: octubre-2008
Mensajes: 41
Antigüedad: 15 años, 6 meses
Puntos: 2
Al actualizar campos file de un form...

Tengo 4 campos input file (imágenes) en el formulario de actualización de producto.

Entonces necesito averigüar si el usuario ha dejado algún campo en blanco en los input file para no subir las fotos.

¿Cómo hago esto en el bucle?
  #2 (permalink)  
Antiguo 21/05/2010, 03:24
fiu
 
Fecha de Ingreso: diciembre-2006
Ubicación: Barcelona
Mensajes: 128
Antigüedad: 17 años, 3 meses
Puntos: 8
Respuesta: Al actualizar campos file de un form...

mas que un bucle sería una condición, comprueba si están o no llenos de alguna de estas maneras:
if($_POST['file1']['name']) { ... }
if(isset($_POST['file1']['name'])) { ... }
if($_POST['file1']['name']!="") { ... }
esto seria al recibir los datos claro, si quieres comprobarlo justo antes de enviar el formulario tendria que ser con javascript al clicar el boton de enviar, pero no sabria como hacerlo exactamente (seria algo como onSubmit="document.form.input('file1').value ... ", pero mejor buscar info sobre eso)
  #3 (permalink)  
Antiguo 21/05/2010, 03:38
Avatar de Lr_Darko  
Fecha de Ingreso: octubre-2008
Mensajes: 41
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Al actualizar campos file de un form...

Ya pero los campos (las imágenes) las tengo en un array de la forma img[]

Por eso tengo que recorrerlos en un bucle.

Debería preguntar dentro del bucle por la condición de que estuviesen vacíos. Si no están vacíos los subo al servidor.

Ahora me queda una duda... ¿cómo hago para guardar la ruta de las imágenes que sí se han cambiado para luego hacer la consulta y actualizarlas en la base de datos de forma que coincidan los campos?

No sé si me he explicado.
  #4 (permalink)  
Antiguo 21/05/2010, 04:07
fiu
 
Fecha de Ingreso: diciembre-2006
Ubicación: Barcelona
Mensajes: 128
Antigüedad: 17 años, 3 meses
Puntos: 8
Respuesta: Al actualizar campos file de un form...

en ese caso puede hacerlo individualmente así:

if(isset($_POST[img]['name'][0])) { ...}
if(isset($_POST[img]['name'][1])) { ...}
...

puedes usar un for;
for($i=0;$i<4;$i++) {
if(isset($_POST[img]['name'][$i]) { /* esta lleno */ }
}

de todas formas, segun como tengas contruida la sentencia sql, puedes tratarlos individualmente así:

$sql = "INSERT (";
$sql.=" nombre,";
if(isset($_POST[img]['name'][1])) { $sql.=" ,foto1"; }
if(isset($_POST[img]['name'][1])) { $sql.=" ,foto2"; }
$sql.=" ) VALUES (";
...

o si has usado el for, puedes pasar los valores a variables dentro del if del for, estilo
$foto1 = $_POST[img]['name'][$i];

y luego la sentencia con las variables. Cada uno lo hará a su manera, yo suelo hacerlo de estas.
  #5 (permalink)  
Antiguo 21/05/2010, 04:19
Avatar de Lr_Darko  
Fecha de Ingreso: octubre-2008
Mensajes: 41
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Al actualizar campos file de un form...

Ok.
El tema es si guardo los valores nuevos en variables, los que no tienen valor porque el administrador no quiso actualizar esas imágenes no sé como darles valor para que luego al hacer el UPDATE no se queden el campo de las imágenes a blanco.

Creo que mi duda sería algo como lo que me has contestado pero con UPDATE pero no me queda muy claro el código, ¿podrías explayarte?

$sql = "INSERT (";
$sql.=" nombre,";
if(isset($_POST[img]['name'][1])) { $sql.=" ,foto1"; }
if(isset($_POST[img]['name'][1])) { $sql.=" ,foto2"; }
$sql.=" ) VALUES (";
...
  #6 (permalink)  
Antiguo 21/05/2010, 04:44
fiu
 
Fecha de Ingreso: diciembre-2006
Ubicación: Barcelona
Mensajes: 128
Antigüedad: 17 años, 3 meses
Puntos: 8
Respuesta: Al actualizar campos file de un form...

hombre debería bastar todo eso para orientar, si no sabes como funciona el tema, te aconsejo buscar en google algo como "php form multiple files" que encontrarás multitud de scripts y tutoriales muy buenos.
Aún así escribiré el ejemplo anterior con update:

$sql =" UPDATE tabla SET";
$sql.=" nombre=".$_POST['nombre'];
if(isset($_POST[img]['name'][0])) {
$sql.=", foto1=".$_POST[img]['name'][0]; }
if(isset($_POST[img]['name'][1])) {
$sql.=", foto2=".$_POST[img]['name'][1]; }
$sql =" WHERE id=".$_GET['id'];

a veces el isset me ha fallado y el !="" me ha funcionado, aunque tb puedes usarl el $_POST dentro del if directamente. Pero vuelvo a aconsejarte mirar tutos de esto.

Etiquetas: campos, file, 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 14:11.