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?
| |||
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) |
| ||||
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. |
| |||
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. |
| ||||
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 ("; ... |
| |||
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: |