Foros del Web » Programando para Internet » PHP »

Campo input

Estas en el tema de Campo input en el foro de PHP en Foros del Web. Hola, tengo dos dudillas y por mas que busco no encuentro como hacerlo, os esplico Tengo un formulario con una serie de campos y 3 ...
  #1 (permalink)  
Antiguo 10/05/2012, 16:49
Avatar de standby82  
Fecha de Ingreso: abril-2011
Mensajes: 29
Antigüedad: 13 años
Puntos: 0
Campo input

Hola, tengo dos dudillas y por mas que busco no encuentro como hacerlo, os esplico

Tengo un formulario con una serie de campos y 3 input file para subir fotos y estos input tienen los 3 el nombre File[], con esto consigo un array con las 3 rutas de las imagenes a subir.

Bien, el tema es que quisiera poner tambien un boton para limpiar el campo, pero al tener los tres el mismo nombre, no se como hacerlo.
Código de los campos input

Código PHP:
<td height="62" class="texto_formulario">Imagenes:</td>
        <
td ><label for="file"></label>
            <
table width="403" border="0">
              <
tr>
                <
td width="249"><input name="file[]" type="file" id="file"></td>
                
              </
tr>
            </
table>
          <
label for="label"></label>
            <
table width="403" border="0">
              <
tr>
                <
td width="214"><input type="file" name="file[]" id="label">
                </
td>
              </
tr>
            </
table>
          <
label for="label2"></label>
            <
table width="403" border="0">
              <
tr>
                <
td width="215"><input type="file" name="file[]" id="label2"> </td>
              </
tr>
            </
table></td


Y también quisiera poder hacer que cuando le dan a aceptar el formulario y les da algún tipo de error, porque algún campo este mal relleno, le aparezca una página indicando los errores que hay y con el formulario de nuevo pero relleno tal y como lo había hecho. Todo esto lo cosigo pasandole variables con los datos de cada campo, menos para los campos input. No se como pasarles ese valor.

La validacion la tengo hecha con Javascript, pero quiero tambien validarlo por php, por si este estubiera deshabilitado y es cuando si falla javascript cuando tendría que aparecer los errores introducidos y el formulario nuevamente con los datos y introduciones previamente.

¿¿A alguien se le ocurre??

Gracias
  #2 (permalink)  
Antiguo 10/05/2012, 20:34
 
Fecha de Ingreso: febrero-2012
Mensajes: 99
Antigüedad: 12 años, 2 meses
Puntos: 4
Respuesta: Campo input

mira, no es tan dificil:
para lo de los input podes hacer un for que seria de la siguiente manera

<?php
for (i=1; i<=3;i++){
file[i]="";
}
?>

y para validar el formulario tenes que preguntar si el campo esta setiado. la sintaxis seria de la siguiente manera:

if (!isset $_post[]){
echo "Por favor complete los campos con *";

}

cualquier duda me avisas
  #3 (permalink)  
Antiguo 10/05/2012, 22:13
Avatar de funkii  
Fecha de Ingreso: junio-2010
Mensajes: 64
Antigüedad: 13 años, 10 meses
Puntos: 4
Respuesta: Campo input

Si queres que los campos completados queden rellenos agregales a los inputs en value esto:
value="<?php echo $variable; ?>"

Saludos :)
  #4 (permalink)  
Antiguo 11/05/2012, 10:17
Avatar de standby82  
Fecha de Ingreso: abril-2011
Mensajes: 29
Antigüedad: 13 años
Puntos: 0
Respuesta: Campo input

No me he esplicado bien.

la validacion tanto en php como en javascrip la tengo hecha y funciona muy bien.
El único problema es que si deshabilitan el javascript y aceptan el formulario les va a llevar a una pagina donde les ponen los errores que tienen los formularios, y me gustaría que en esa página tambien les apareciera otra vez el formulario, con los datos que ellos hubieran introducido.

El problema es que no se como en el campop input file ponerle la ruta que ellos hubieran introducido, ya que value="<?php echo $variable; ?>" no lo coge.

Tambien quisiera saber como poner un boton para limpiar el campo input.

Mejor asi??, quizas en el primer mensaje lo complique un poco
  #5 (permalink)  
Antiguo 11/05/2012, 10:30
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Campo input

En teoría debería bastar con poner el get del campo, tal como dijo funkii, lo pongo un poco más explicito:

<?php $filecounter=0; ?>
<input name="file[]" type="file" id="file" value="<?php echo $_GET["file[".filecounter."]"];filecounter++; ?>">
<input name="file[]" type="file" id="file" value="<?php echo $_GET["file[".filecounter."]"];filecounter++; ?>">
<input name="file[]" type="file" id="file" value="<?php echo $_GET["file[".filecounter."]"];filecounter++; ?>">

En cuanto a tu primer problema, NUNCA, usar elementos con la misma ID, aunque si pueden tener el mismo nombre:

<?php $filecounter=0; ?>
<input name="file[]" type="file" id="file<?php echo $filecounter; ?>" value="<?php echo $_GET["file[".$filecounter."]"];filecounter++; ?>">
<input name="file[]" type="file" id="file<?php echo $filecounter; ?>" value="<?php echo $_GET["file[".$filecounter."]"];filecounter++; ?>">
<input name="file[]" type="file" id="file<?php echo $filecounter; ?>" value="<?php echo $_GET["file[".$filecounter."]"];filecounter++; ?>">

Ahora si siempre serán 3 elementos a subir, mejor los defines con números:

<input name="file1" type="file" id="file1" value="<?php echo $_GET["file1"]; ?>">
<input name="file2" type="file" id="file2" value="<?php echo $_GET["file2"]; ?>">
<input name="file3" type="file" id="file3" value="<?php echo $_GET["file3"]; ?>">

De esta forma puedes validarlos por su nombre o id.

Te recuerdo que la mayoría de los navegadores (creo que todos) no permiten obtener la ruta de los archivos por seguridad, te entregan una ruta fake

%fake%/archivo.txt
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #6 (permalink)  
Antiguo 11/05/2012, 10:36
Avatar de funkii  
Fecha de Ingreso: junio-2010
Mensajes: 64
Antigüedad: 13 años, 10 meses
Puntos: 4
Respuesta: Campo input

Para lo primero necesitaria el script PHP que tenes, osea la validacion.

Para los file no se puede especificar un value, entonces creo que no se puede dejarles el valor que ya habian puesto.

Para limpiar los inputs tenes el input type="reset", o sino con javascript, haciendo una funcion y despues aplicandola en el onclick de algun input type="button"

No se si se me entendio muy bien.
:)
  #7 (permalink)  
Antiguo 11/05/2012, 18:56
Avatar de standby82  
Fecha de Ingreso: abril-2011
Mensajes: 29
Antigüedad: 13 años
Puntos: 0
Respuesta: Campo input

ok,muchas gracias a todos lo probaré y si tengo algún problema ya os diré.

Gracias de nuevo
  #8 (permalink)  
Antiguo 11/05/2012, 22:27
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: Campo input

No hay manera de asignar un valor por defecto para campos tipo FILE; por cuestiones de seguridad, todos los navegadores harán caso omiso del atributo value.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: formulario, imagenes, input, variables, campos
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 16:29.