Foros del Web » Programando para Internet » PHP »

input type='file' name='file' onblur='".LimitAttach(this,1)."

Estas en el tema de input type='file' name='file' onblur='".LimitAttach(this,1)." en el foro de PHP en Foros del Web. Wenas ! es una pregunta algo absurda pero esk ya me estoy volviendo loko y no veo el fallo y seguro k es una xorrada... ...
  #1 (permalink)  
Antiguo 02/05/2011, 12:22
 
Fecha de Ingreso: abril-2009
Mensajes: 106
Antigüedad: 15 años, 1 mes
Puntos: 1
input type='file' name='file' onblur='".LimitAttach(this,1)."

Wenas !
es una pregunta algo absurda pero esk ya me estoy volviendo loko y no veo el fallo y seguro k es una xorrada... pq siempre me pasa lo mismo, las xorradas no las veo

tengo una funcion para restringir las extensiones en un inut file k coji de aki del foro pero cuando la uso me aparece esto en el navegador "; ?>

la sentencia es esta:

<?php
echo "<input type='file' name='file' onblur='".LimitAttach(this,1)."' />";
?>

aver si ven el fallo pq seguro k es una tonteria...

Muxas gracias de antemano como siempre
salu2
  #2 (permalink)  
Antiguo 02/05/2011, 12:39
Avatar de Hugo_Euan  
Fecha de Ingreso: abril-2011
Ubicación: Mérida, Yucatán, México
Mensajes: 193
Antigüedad: 13 años
Puntos: 71
Respuesta: input type='file' name='file' onblur='".LimitAttach(this,1)."

en definitiva a de ser una chorrada como dices

para empezar la manera en que concatenas es incorrecta :

echo "<input type='file' name='file' onblur='".LimitAttach(this,1)."' />";

debería ser así:

echo '<input type="file" name="file" onblur=\''.LimitAttach(this,1).\' />';

y si la concatenación no era la que te daba error eso quiere decir que esa línea no es a erronea... y probablemente el error sea la función a la que llamas o el valor this que le envias...

Intenata modificandola y comentas...

EXITO !!!
__________________
Se acepta Karma (:

Si Dios con nosotros, quien contra nosotros !!
  #3 (permalink)  
Antiguo 02/05/2011, 12:49
 
Fecha de Ingreso: abril-2009
Mensajes: 106
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: input type='file' name='file' onblur='".LimitAttach(this,1)."

Gracias!
pero al final fue la manera en que llame a la funcion...

ahora me da fallo en esta sentencia :

function LimitAttach(tField,iType) {

dice k la coma no se espera mira el codigo de error k me sale:
Parse error: syntax error, unexpected ',', expecting '&' or T_VARIABLE in E:\xampp\htdocs\Menyber\web\altasalquiler.php on line 74

la verdad esk llevo algo de tiempo parado ... y se nota XD

Gracias !
  #4 (permalink)  
Antiguo 02/05/2011, 12:51
 
Fecha de Ingreso: abril-2009
Mensajes: 106
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: input type='file' name='file' onblur='".LimitAttach(this,1)."

por cierto si sirve que seguro k si cuelgo la funcion k coji de aki del foro ok?

function LimitAttach(tField,iType) {
file=tField.value;
if (iType==1) {
extArray = new Array(".gif",".jpg",".png");
}
if (iType==2) {
extArray = new Array(".swf");
}
if (iType==3) {
extArray = new Array(".exe",".sit",".zip",".tar",".swf",".mov",". hqx",".ra",".wmf",".mp3",".qt",".med",".et");
}
if (iType==4) {
extArray = new Array(".mov",".ra",".wmf",".mp3",".qt",".med",".et ",".wav");
}
if (iType==5) {
extArray = new Array(".html",".htm",".shtml");
}
if (iType==6) {
extArray = new Array(".doc",".xls",".ppt");
}
allowSubmit = false;
if (!file) return;
while (file.indexOf("\\") != -1) file = file.slice(file.indexOf("\\") + 1);
ext = file.slice(file.indexOf(".")).toLowerCase();
for (var i = 0; i < extArray.length; i++) {
if (extArray[i] == ext) {
allowSubmit = true;
break;
}
}
if (allowSubmit) {
} else {
tField.value="";
alert("Usted solo puede subir archivos con extensiones " + (extArray.join(" ")) + "\nPor favor seleccione un nuevo archivo");
}
}


Gracias de nuevo
  #5 (permalink)  
Antiguo 02/05/2011, 12:54
Avatar de Memochipan  
Fecha de Ingreso: agosto-2009
Mensajes: 14
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: input type='file' name='file' onblur='".LimitAttach(this,1)."

Creo que la sintaxis correcta debería ser:

Código:
echo '<input type="file" name="file" onblur="'.LimitAttach(this,1).'"/>';
La sentencia que escribe Hugo_Euan tiene a mi parecer dos inconvenientes:

1. Es estandar el uso de comillas dobles en vez de comillas simples en los input.

2. Despues del (this,1).\ está sobreando el back slash.

Prueba el código y dinos cómo te fue.

Saludos.
  #6 (permalink)  
Antiguo 02/05/2011, 12:58
Avatar de Memochipan  
Fecha de Ingreso: agosto-2009
Mensajes: 14
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: input type='file' name='file' onblur='".LimitAttach(this,1)."

Podrías decirnos cual es la línea 74 para detectar el fallo. Gracias.
  #7 (permalink)  
Antiguo 02/05/2011, 12:59
 
Fecha de Ingreso: abril-2009
Mensajes: 106
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: input type='file' name='file' onblur='".LimitAttach(this,1)."

function LimitAttach(tField,iType) {

esa es la linea 74

Gracias!
  #8 (permalink)  
Antiguo 02/05/2011, 13:08
Avatar de Memochipan  
Fecha de Ingreso: agosto-2009
Mensajes: 14
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: input type='file' name='file' onblur='".LimitAttach(this,1)."

Esa sentencia está utilizando una sintaxis con la que no estoy muy familiarizado, pero parece como si estuviera pasando mal los argumentos a la función.

Por lo general uno define son variables en los argumentos de una función, así:

Código:
function some_function($v1,$v2,$v3)
Es decir con el signo pesos $.
  #9 (permalink)  
Antiguo 02/05/2011, 13:15
Avatar de Memochipan  
Fecha de Ingreso: agosto-2009
Mensajes: 14
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: input type='file' name='file' onblur='".LimitAttach(this,1)."

Ya sé cuál es el problema. El código de la función no es php. Es JavaScript. No debes guardarlo en un archivo .php sino .js y llamarlo desde el <head> de la página.

Si tienes más dudas, escribe.
  #10 (permalink)  
Antiguo 02/05/2011, 13:41
Avatar de Memochipan  
Fecha de Ingreso: agosto-2009
Mensajes: 14
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: input type='file' name='file' onblur='".LimitAttach(this,1)."

Mira, me di al trabajo de probarlo y funciona bien.

En el archivo donde tienes el input (sea en php o durectamente en html) debes hacer el llamado a la función de Javascript, así:

Código:
<html>
	<head>
		<script type="text/javascript" src="ts.js"></script>
	</head>
	<body>
		<form action="" method="post" id="newtask" name="newtask"> 
			<input type='file' name='file' onblur="LimitAttach(this,1)"/>
		</form>
	</body>
</html>
Y crea un archivo que se llame ts.js y guardalo en la misma carpeta, y en el pega el código de la función:

Código:
function LimitAttach(tField,iType) {
file=tField.value;
if (iType==1) {
extArray = new Array(".gif",".jpg",".png");
}
if (iType==2) {
extArray = new Array(".swf");
}
if (iType==3) {
extArray = new Array(".exe",".sit",".zip",".tar",".swf",".mov",". hqx",".ra",".wmf",".mp3",".qt",".med",".et");
}
if (iType==4) {
extArray = new Array(".mov",".ra",".wmf",".mp3",".qt",".med",".et ",".wav");
}
if (iType==5) {
extArray = new Array(".html",".htm",".shtml");
}
if (iType==6) {
extArray = new Array(".doc",".xls",".ppt");
}
allowSubmit = false;
if (!file) return;
while (file.indexOf("\\") != -1) file = file.slice(file.indexOf("\\") + 1);
ext = file.slice(file.indexOf(".")).toLowerCase();
for (var i = 0; i < extArray.length; i++) {
if (extArray[i] == ext) {
allowSubmit = true;
break;
}
}
if (allowSubmit) {
} else {
tField.value="";
alert("Usted solo puede subir archivos con extensiones " + (extArray.join(" ")) + "\nPor favor seleccione un nuevo archivo");
}
}
Te debería funcionar sin problemas.

P.D. No olvides remover el código javascript de tu archivo .php

Saludos.

Etiquetas: input
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 15:00.