Foros del Web » Creando para Internet » Flash y Actionscript »

LoadVars: Envio de Arrays

Estas en el tema de LoadVars: Envio de Arrays en el foro de Flash y Actionscript en Foros del Web. Wenas: veo q el tema de las LoadVars está de moda, jejeje. Yo me uno a las dudas y pregunto... se puede enviar un array ...
  #1 (permalink)  
Antiguo 20/10/2004, 11:31
 
Fecha de Ingreso: enero-2002
Mensajes: 59
Antigüedad: 15 años, 10 meses
Puntos: 0
Pregunta LoadVars: Envio de Arrays

Wenas:

veo q el tema de las LoadVars está de moda, jejeje.

Yo me uno a las dudas y pregunto... se puede enviar un array desde Flash a Asp utilizando el LoadVars ?

Sé q se puede "desmembrar" y enviar todo el array en variables, pero eso resultaría un follón a la hora de leerlo en Asp. Además, en la aplicación q estoy realizando tengo q enviar varios arrays

Alguien me puede aclarar esta duda?
  #2 (permalink)  
Antiguo 20/10/2004, 13:38
Avatar de TMeister
Crazy Coder
 
Fecha de Ingreso: enero-2002
Ubicación: En la Oficina
Mensajes: 2.880
Antigüedad: 15 años, 11 meses
Puntos: 193
No, no se puede hacer esto.. con solo Flash...

la manera mas simple es algo asi

Código:
mi_array = ["a", "b", "c", "d", "e"];
vars = "";
for (a=0; a<mi_array.length; a++) {
	vars += mi_array[a]+"|";
}
vars = vars.substr(0, -1);
//  vars queda asi
//  a|b|c|d|e
send_lv = new LoadVars();
send_lv.miVariable = vars;
send_lv.sendAndLoad("tuScript.php", send_lv, "POST");
send_lv.onLoad = function() {
	trace("Done");
};
y en el PHP

Código PHP:
<?php
$mi_var 
$_POST['miVariable'];
$mi_array split("|"$mi_var);
//Listo ya tienes de nuevo armado tu array en PHP
?>
Me imagino que ASP debe tener una funcion similar al split yo no conosco ASP no me gusta en lo mas minimo, investigale

Ahora si lo que quieres es trabajar con Datatype exactos puedes usar FlashRemoting la mala noticia es que el FlashRemoting solo funciona con ColdFusion o hay versiones libres para PHP por ejemplo AMFPHP aqui hay una introduccion

http://tmeister.net/php/view.php?id=7

con el AMF (ActionScript Message Format) tienes conexion directa con el servidor pudiendo enviar y recibir array, objetos, etc etc mantenido el datatype en el cliente como en el servidor...



  #3 (permalink)  
Antiguo 21/10/2004, 02:40
 
Fecha de Ingreso: enero-2002
Mensajes: 59
Antigüedad: 15 años, 10 meses
Puntos: 0
Muchas gracias TMeister , aunque no es la respuesta q yo buscaba Yo confiaba en q se pudiese hacer lo q yo quería, pero ya me imaginaba q no iba a ser posible

El formato q tú me has recomendado es algo q ya tenía pensado, pero mi intención era ahorrarme esos pasos

Lo probaré con ASP y dejaré la respuesta en este foro.


Xao
  #4 (permalink)  
Antiguo 21/10/2004, 03:03
 
Fecha de Ingreso: enero-2002
Mensajes: 59
Antigüedad: 15 años, 10 meses
Puntos: 0
:(:(:( No sé q pasa !!!

TMeister, cuando utilizo tu código AS, el flash se me queda colgao.

Jo, estoy como al principio
  #5 (permalink)  
Antiguo 21/10/2004, 11:10
 
Fecha de Ingreso: enero-2002
Mensajes: 59
Antigüedad: 15 años, 10 meses
Puntos: 0
De acuerdo

Ya lo tengo ... más o menos. No he conseguido pasar arrays pero sí he conseguido pasar los datos.

Por si a alguien le viene bien, voy a poner el código:

Código en Flash:

Código:
var CargarVars = new LoadVars();

// Declaracion de Arrays para almacenar los datos
Treferencia = new Array(_root.cesta.contador);

for (s=0;s<_root.cesta.contador;s++){
	Treferencia[s] = eval("_root.cesta.items.art"+s).referencia;
}

// Variables q luego se pasaran al archivo asp
Vreferencia = "";

// Se convierten los arrays en cadenas,separando los elementos con |
for (a=0; a<Treferencia.length; a++) {
		Vreferencia += Treferencia[a]+"|";
}

// Se elemina el ultimo caracter de la cadena
Vreferencia = Vreferencia.substr(0, -1);

CargarVars.Vreferencia = Vreferencia;

CargarVars.send("http://www.loqsea.com/guardar.asp","_blank","POST");
Y en el asp he puesto:

Código:
Vreferencia=request("Vreferencia")
Treferencia = split(Vreferencia, "|")

De momento he consegudio q las variables pasen, e incluso q se envien por mail. Ahora queda q se guarden en BD.

Xao, gracias por todo
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 01:29.