Foros del Web » Programando para Internet » Javascript » Frameworks JS »

variables globales declaradas "inline" :: SOLUCIONADO

Estas en el tema de variables globales declaradas "inline" :: SOLUCIONADO en el foro de Frameworks JS en Foros del Web. Tengo esto: Cita: <input id="nombre" class="subir" type="text" value="name the pair of files" onclick="$(this).val('');" /> <span class="subir">*</span> <br /> <input id="autor" class="subir" type="text" value="author's name..." onclick="$(this).val('');" ...
  #1 (permalink)  
Antiguo 02/03/2010, 08:06
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 13 años, 3 meses
Puntos: 101
variables globales declaradas "inline" :: SOLUCIONADO

Tengo esto:
Cita:
<input id="nombre" class="subir" type="text" value="name the pair of files" onclick="$(this).val('');" /> <span class="subir">*</span> <br />
<input id="autor" class="subir" type="text" value="author's name..." onclick="$(this).val('');" /> <span class="subir">*</span> <br /> <br />
<a href="#" class="subir" onclick="nombre = $('#nombre').val(); autor = $('#autor').val(); $('#fileUpload').fileUploadStart();">Go!</a>
Quiero pasar las variables nombre y autor a la función fileUpload. Y mi problema es que no puedo pasarlas como parámetros de la función (porque no se modificar esa función, basicamente).

Necesito que a la hora de ejecutarse la función, nombre y autor tengan las valores de los campos input correspondientes.

Este es el codigo de la función:

Cita:
$("#fileUpload").fileUpload({
'uploader': 'libreria/uploader/uploader.swf',
'cancelImg': 'libreria/uploader/cancel.png',
'folder': '<?php echo $path;?>',
'scriptData': {'nombre': nombre, 'autor': autor},
'buttonText': 'Add',
'checkScript': 'libreria/uploader/check.php',
'script': 'libreria/script.php',
'multi': true,
'simUploadLimit': 2,
'onSelect': function(){$(".subir").show(); },
'onComplete': function(){$(".subir").hide();
// location.reload(true);
}
});
Ya intenté esta linea, pero no funciona:
Cita:
'scriptData': {'nombre': $('#nombre').val(), 'autor': $('#autor').val()},
Lo que obtengo con eso es el value original. Por ejemplo: name the pair of files. Y eso que tengo un evento onclick que resetea los valores!

Como resolverlo?

Última edición por mayid; 02/03/2010 a las 11:41
  #2 (permalink)  
Antiguo 02/03/2010, 08:30
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 12 años, 7 meses
Puntos: 65
Respuesta: variables globales declaradas "inline"

no es problema de variables globales o locales, los parametros que recibe no se pueden modificar dinamicamente salvo con algun metodo que los vueva a setear, fijate si encontras algun seter


fijate que creo una funcion para ver los datos y funciona bien, en tu codigo las variables cambian pero el valor en los parametros no van a cambiar porque estan seteados


fijate que cambian los valores de variables
Código HTML:
<html>
<head>
<title>Untitled</title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
function funcionAlerta (){
    alert (nombre);
}
</script>
</head>
<body>
    <input id="nombre" class="subir" type="text" value="name the pair of files" onclick="$(this).val('');" /> <span class="subir">*</span> <br />
    <input id="autor" class="subir" type="text" value="author's name..." onclick="$(this).val('');" /> <span class="subir">*</span> <br /> <br />
    <a href="#" class="subir" onclick="nombre = $('#nombre').val(); autor = $('#autor').val(); funcionAlerta(nombre +' '+autor)">Go!</a>
</body>
</html> 
  #3 (permalink)  
Antiguo 02/03/2010, 08:52
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 13 años, 3 meses
Puntos: 101
Respuesta: variables globales declaradas "inline"

Cita:
no es problema de variables globales o locales, los parametros que recibe no se pueden modificar dinamicamente salvo con algun metodo que los vueva a setear, fijate si encontras algun seter
Todavía no entiendo el flujo de las cosas.

Cita:
function funcionAlerta (){
alert (nombre);
}
Con esto estas tomando la variable nombre? Y no te da error estar pasando un parametro a una función que no declara parametros?
  #4 (permalink)  
Antiguo 02/03/2010, 09:13
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 12 años, 7 meses
Puntos: 65
Respuesta: variables globales declaradas "inline"

no da error, en realidad queria pasar el parametro jeje, igual funciona como ejemplo

lo que queria decir es que no es problema de que no modifica el valor en las variables, porque las modifica, lo que no se modifica son las opciones porque eso no se puede modificar, para modificar esas opcion tendria que tener algun método


fijate esta funcion uploadifySettings para modificar opciones que dice que se puede modificar el parametro scriptData
  #5 (permalink)  
Antiguo 02/03/2010, 09:14
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 13 años, 3 meses
Puntos: 101
Respuesta: variables globales declaradas "inline"

Cita:
fijate esta funcion uploadifySettings para modificar opciones que dice que se puede modificar el parametro scriptData
Justo a tiempo.

Esto será util. Puede declarar la data posteriormente a inicializarlo:
Cita:
$('#fileUpload').uploadifySettings('scriptData', {'nombre': nombre, 'autor': autor});
De esta manera, las variables estarían "frescas", no?

Pero me surge algo tonto. Tengo esto en document.ready:
Cita:
$("#go").click(function(){

nombre = $('#nombre').val();
autor = $('#autor').val();

$('#fileUpload').uploadifySettings('scriptData', {'nombre': nombre, 'autor': autor});
alert(nombre+autor);
$('#fileUpload').fileUploadStart();
});
Quiere decir que una vez que aprieto el boton Go! el uploader toma los valores necesarios, y arranca. Y el error que da es en esta linea:

Cita:
nombre = $('#nombre').val();
Que lio! Por algo tan simple.
  #6 (permalink)  
Antiguo 02/03/2010, 09:23
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 12 años, 7 meses
Puntos: 65
Respuesta: variables globales declaradas "inline"

que raro, fijate en firefox el error jeje
  #7 (permalink)  
Antiguo 02/03/2010, 09:36
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 13 años, 3 meses
Puntos: 101
Respuesta: variables globales declaradas "inline"

Cita:
$("#fileUpload").uploadifySettings is not a function
[Break on this error] $('#fileUpload').uploadifySettings('sc...nombre': nombre, 'autor': autor});
El error surge de esta linea.
$('#fileUpload').uploadifySettings('scriptData', {'nombre': nombre, 'autor': autor});

Voy a chequear a ver que onda. Gracias Dany!
  #8 (permalink)  
Antiguo 02/03/2010, 09:40
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 12 años, 7 meses
Puntos: 65
Respuesta: variables globales declaradas "inline"

fijate que tengas la ultima version del plugin porque no encuentra esa funcion
  #9 (permalink)  
Antiguo 02/03/2010, 09:54
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 13 años, 3 meses
Puntos: 101
Respuesta: variables globales declaradas "inline"

Tal cual! era un problema de versiones. Ahora lo estoy resolviendo.

No se como pudo pasar, pero es eso.

Gracias por la ayuda!
  #10 (permalink)  
Antiguo 02/03/2010, 10:18
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 13 años, 3 meses
Puntos: 101
Respuesta: variables globales declaradas "inline"

De una version a otra cambiaron varias cosas. Las reemplacé en el script, y reemplacé los archivos. Ahora, tengo esto y no da error:

Cita:
$("#go").click(function(){

nombre = $('#nombre').val();
autor = $('#autor').val();

$('#fileUpload').uploadifySettings('scriptData', {'nombre': nombre, 'autor': autor});
$('#fileUpload').uploadifyUpload();
});
Peeero, según Firefox no me está enviando la data. Esto es todo lo que envia:
SQXJHU=TilesOrnate0029_S.jpg&folder=%2FMeshReposit ory%2Falbum%2F

Que significa que va la variable "folder" (declarada aparte por ser especial. carpeta de uploads). pero no va nada mas. :(
  #11 (permalink)  
Antiguo 02/03/2010, 11:40
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 13 años, 3 meses
Puntos: 101
Respuesta: variables globales declaradas "inline"

Ok. Resuelto.

Firefox no declara el envio de mis variables en scriptData pero las recibo. Y son POST por default, siendo que en la antigua version eran GET. Asi que me marearon un poco.

Cita:
$("#go").click(function(){

nombre = $('#nombre').val();
autor = $('#autor').val();

$('#fileUpload').uploadifySettings('scriptData', {'nombre': nombre,"autor":autor});

$('#fileUpload').uploadifyUpload();
});
  #12 (permalink)  
Antiguo 03/03/2010, 08:49
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 16 años, 7 meses
Puntos: 281
Respuesta: variables globales declaradas "inline" :: SOLUCIONADO

¿Qué tal uploadify? Yo estoy pensando usarlo para un sistema de gestión de archivos que estoy haciendo.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #13 (permalink)  
Antiguo 03/03/2010, 09:09
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 13 años, 3 meses
Puntos: 101
Respuesta: variables globales declaradas "inline" :: SOLUCIONADO

Está bien construido, y documentado. Tiene varios callbacks, y quizás te sirvan para lo que necesites. Es liviano...

En cuanto a la película flash: se puede cambiar la imagen, cambiar el texto...

En suma es un buen uploader.

Lo que nunca me quedó claro con el queued uploader es como cambiar de lugar la lista de archivos... pero supongo que hay que darse más maña nomás.
  #14 (permalink)  
Antiguo 05/03/2010, 13:36
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 13 años, 3 meses
Puntos: 101
Respuesta: variables globales declaradas "inline" :: SOLUCIONADO

Sigo con la misma pregunta: si yo declaro una variable con un valor inicial, como puedo acceder a su valor una vez que la modifiqué?

En el codigo que pongo, modifico la variable onComplete. Pero al querer accederla desde onAllComplete, el valor es 0, Es decir, el valor original.

Mi ejemplo se basa en un upload multiple. Necesito evaluar que todos los uploads fueron exitosos.

Cita:


resp = 0;

...document.ready...etc....

'onComplete': function(a,b,c,respuesta,e){

if (respuesta != "ok"){

resp = resp-1;
}
else {

resp = resp++;
}

},
'onAllComplete':function(a,b){
alert(resp);


if (resp >= 1) {

setTimeout("location.reload(true)",1500);
}

},
  #15 (permalink)  
Antiguo 05/03/2010, 13:58
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 16 años, 7 meses
Puntos: 281
Respuesta: variables globales declaradas "inline" :: SOLUCIONADO

bueno, el que sube los archivos es PHP en este caso, ¿no? Yo lo que haría es devolver errores si alguno de los archivos no subió. Es mas fácil enviar un reporte directo desde PHP para informar si hubo algún error.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #16 (permalink)  
Antiguo 05/03/2010, 14:26
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 13 años, 3 meses
Puntos: 101
Respuesta: variables globales declaradas "inline" :: SOLUCIONADO

Es PHP. Yo envio "1" (u "ok") si no hubo errores. Pero si los hubo, algun mensaje.

No creo que Uploadify sea capaz de discernir si hubo upload o no... Pero tiene manejo de errores: onError. Tambien la seccion onAllComplete avisa cuantos archivos se subieron satisfactoriamente, y cuantos dieron error. Pero esos errores no creo que tengan que ver con las respuestas que yo genere en PHP. Vos que pensas?
  #17 (permalink)  
Antiguo 05/03/2010, 15:17
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 12 años, 7 meses
Puntos: 65
Respuesta: variables globales declaradas "inline" :: SOLUCIONADO

fijate con un alert al final de onComplete que resultado te da, por ahi resta uno y despues suma, o sea si primero no es igual a ok resta uno y luego si es ok y suma 1 y por podria dar 0
  #18 (permalink)  
Antiguo 05/03/2010, 15:22
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 13 años, 3 meses
Puntos: 101
Respuesta: variables globales declaradas "inline" :: SOLUCIONADO

Te asegura que las dos veces suma. Lo puedo ver con jGrowl. Los dos uploads tienen exito, pero no se como manejar eso en onAllComplete. En que se basaría onAllComplete para corroborar el exito de los uploads? Seguro que en mi texto PHP no (en el que devuelvo, sea "1" o "0", o cualquier otra cosa).
  #19 (permalink)  
Antiguo 05/03/2010, 15:50
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 12 años, 7 meses
Puntos: 65
Respuesta: variables globales declaradas "inline" :: SOLUCIONADO

no declaraste como privada la variable en la funcion onComplete o en onAllComplete?
  #20 (permalink)  
Antiguo 05/03/2010, 15:54
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 13 años, 3 meses
Puntos: 101
Respuesta: variables globales declaradas "inline" :: SOLUCIONADO

Anteponiendo var? No. Y la original estaba fuera de toda llave.

Lo que tengo es la gran duda de por que si yo tengo esta estructura (dentro de document.ready):

'onAllComplete':function(a,b){
alert( $("#valor").attr("title") );
},

... lo que me devuelve es lo que tiene al cargar la pagina. Para mi es impensable que este sucediendo esto.

Última edición por mayid; 05/03/2010 a las 16:10

Etiquetas: globales, solucionado, variables
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 12:09.