Comunidad de diseño web y desarrollo en internet online

Problemas recibiendo más de una variable, mediante loadVars

Citar            
MensajeEscrito el 14 Mar 2007 03:19 pm
Hola, tengo un problema al recibir dos variables desde un script php.
La idea, es, devolverle a flash un listado de registros, obtenidos desde una consulta... pero, esty haciendo pruebas preliminares con solamente dos miseras variables.
Mi codigo php, luce así:

Código :

<?php

   $link=mysql_connect("localhost","root","");   

   $db_selected = mysql_select_db("ergonomia", $link);

   $miconsulta = mysql_query("SELECT * FROM medidas", $link);

   list($total) = mysql_fetch_row($miconsulta);

   $fila = mysql_fetch_array($miconsulta);

   echo "peso=".$fila['peso'].";estatura=".$fila['estatura'];
   echo "<br><br>";

   for($i=0; $i<=$total; $i++){
      echo "Peso=".$fila['peso']."<br>";
      echo "Estatura=".$fila['estatura']."<br><br>";
   }

   mysql_close($link);
?>

-----------------------------------------
Mi bloque de A.S., luce así:

Código :

//Declaro las variables para enviar y para recibir.
var envio_lv:LoadVars = new LoadVars();
var recibir_lv:LoadVars = new LoadVars();
//Función que envia el forumlario.
function recibirMail() {
   //recogemos.
   envio_lv.tabla = 'medidas';
   trace("TABLA: "+envio_lv.tabla);
   //enviamos.
   envio_lv.sendAndLoad("consulta.php", recibir_lv, "POST");
}
//Función que procesa los datos recibidos del servidor
recibir_lv.onLoad = function(exito) {
   if (exito) {
      var destino:MovieClip;
      for (i=1; i<=10; i++) {
         nuevo = "reg"+i;
         destino = _root.reg.duplicateMovieClip(nuevo, i+1);
         //...
         destino.txt01.text = recibir_lv.peso;
         destino.txt02.text = recibir_lv.estatura;
         //corremos los registros.
         destino._y += 32*i;
      }
      //oculta el aviso:
      //mensaje de exito:
      _root.aviso02.gotoAndPlay(4);
   } else {
      //Muestra el aviso "Consultando..."
      _root.aviso02.gotoAndPlay(2);
   }
};
stop();



Agradezco cualquier ayuda.

Por gustavogarzon

166 de clabLevel



 

msie7
Citar            
MensajeEscrito el 14 Mar 2007 03:52 pm
el PHP debe de devolveralgo como

&var1=valor1&var2=valor2&var3=valor3&



el último "&" es porque a veces se te cuela algún espacio en el HTML o por ahí y puede fastidiar un poco (por ejemplo si son numéricas)

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

firefox
Citar            
MensajeEscrito el 14 Mar 2007 05:09 pm
Muchas gracias Conejo, efectivamente, el anpersant me sirvió de maravilla.
Pero tengo una pregunta: donde conseguiste ese tip?, en la referencia de A.S.?.
Gracias por tu ayuda :D.

Por gustavogarzon

166 de clabLevel



 

msie7
Citar            
MensajeEscrito el 14 Mar 2007 06:36 pm
Oye ninjaBunny, me sucede lo sgte:
Me funcionó perfectamente lo del anpersant... ya flash me recibe mas de una variable. :D
Ahora, tengo un problema:
En php, estoy imprimiendo una serie de registros que le pienso pasar a flash... para ello, estoy elaborando variables que me quedan de la sgte manera:
&peso1=45&estatura1=66&peso2=22&estatura2=88& .... etc
El punto, es que en flash, cuando creo el bucle que me "genera" los nombres de variable "peso1, peso 2, peso3..." no me está funcionando...
Aqui te mando el script:

Código :

//Declaro las variables para enviar y para recibir.
var envio_lv:LoadVars = new LoadVars();
var recibir_lv:LoadVars = new LoadVars();
//Función que envia el forumlario.
function recibirMail() {
   //recogemos.
   envio_lv.tabla = 'medidas';
   trace("TABLA: "+envio_lv.tabla);
   //enviamos.
   envio_lv.sendAndLoad("consulta.php", recibir_lv, "POST");
}
//Función que procesa los datos recibidos del servidor
recibir_lv.onLoad = function(exito) {
   if (exito) {
      var i:Number = 1;
      var destino:MovieClip;
      var limite:Number = recibir_lv.total;
      var npeso;
      var nesta;
      while (i<=recibir_lv.total) {
         nuevo = "reg"+i;
         destino = _root.reg.duplicateMovieClip(nuevo, i+1);
         //...
         npeso = "recibir_lv.peso"+i;
         nesta = "recibir_lv.estatura"+i;
         destino.txt01.text = npeso;
         destino.txt02.text = nesta;
         //corremos los registros.
         destino._y += 32*i;
         i++;
      }
      //oculta el aviso:
      //mensaje de exito:
      _root.aviso02.gotoAndPlay(4);
   } else {
      //Muestra el aviso "Consultando..."
      _root.aviso02.gotoAndPlay(2);
   }
};
stop();


De antemano, te agradezco tu ayuda. :cool:

Por gustavogarzon

166 de clabLevel



 

msie7
Citar            
MensajeEscrito el 14 Mar 2007 07:50 pm
npeso = "recibir_lv.peso"+i; Eso es una cadena (String) debes de "evaluarlo" de la forma

npeso = recibir_lv["peso"+i];

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

firefox
Citar            
MensajeEscrito el 14 Mar 2007 07:54 pm
Larga vida al CONEJO!!!!!!!!!!!!!!!!!!! :love:

Por gustavogarzon

166 de clabLevel



 

msie7
Citar            
MensajeEscrito el 14 Mar 2007 07:59 pm
Oye conejo, muchisimas gracias!!!!!!!!!!!!!!!!!!!!!!!!!!.
Sos un genio, de verdad que sí.
Hay algo que no entiendo: es la primera vez que veo una expresion: "npeso = recibir_lv["peso"+i];"
O mejor dicho, que tipo de cosa o de referencia es esa?.
Tnx.

Por gustavogarzon

166 de clabLevel



 

msie7
Citar            
MensajeEscrito el 14 Mar 2007 11:49 pm
Conejo haremos un club de Fans a nombre de gustavogarzon para contigo xD !!

Por Jhoseph

0 de clabLevel



Genero:Masculino  

Madrid - España

msie
Citar            
MensajeEscrito el 15 Mar 2007 12:26 am
LMFAO !!!!!!!!!!!!!!!!!!

Por gustavogarzon

166 de clabLevel



 

msie
Citar            
MensajeEscrito el 16 Mar 2007 07:01 pm
Hola conejo.
Tengo el siguiente inconveniente:
Estoy publicando nos registros desde php... y flash me los "imprime" bien.
Pero, la idea, es ponerle a c/u de ellos, a la derecha un boton de "editar"... que al darle click, me lleve a un formulario que permite editar ese registro y luego enviarlo de nuevo para el mysql update.
Bueno, el problema, está durante la asignacion de las acciones a cada boton:

Código :

//matriz que almacena los id.
var identidad:Array = new Array();
//le doy alfa=20 al registro inicial en blanco:
_root.reg._alpha = 20;
//Declaro las variables para enviar y para recibir.
var envio_lv:LoadVars = new LoadVars();
var recibir_lv:LoadVars = new LoadVars();
//gestiona los id.
function oprime(nid) {
   _global.enviaid = nid;
   _root.play();
}
//Función que envia el formulario.
function recibirMail() {
   //hacemos visible:
   _root.reg._alpha = 100;
   //enviamos.
   var urlphp2:String = "consulta.php?id="+(Math.random()*1000);
   envio_lv.sendAndLoad(urlphp2, recibir_lv, "POST");
}
//Función que procesa los datos recibidos del servidor
recibir_lv.onLoad = function(exito) {
   if (exito) {
      //oculta el aviso:
      _root.aviso02.gotoAndPlay(4);
      var i:Number = 1;
      var destino:MovieClip;
      var limite:Number = recibir_lv.total;
      while (i<=limite) {
         nuevo = "reg"+i;
         destino = _root.reg.duplicateMovieClip(nuevo, i+1);
         //ocultamos al original.
         _root.reg._visible = false;
         //...
         npeso = recibir_lv["peso"+i];
         nesta = recibir_lv["estatura"+i];
         nnom = recibir_lv["nombre"+i];
         nced = recibir_lv["cedula"+i];
         nid = recibir_lv["id"+i];
         //posible machete:
         _global.p = i-1;
         identidad[_global.p] = recibir_lv["id"+i];
         //...
         destino.txt01.text = npeso;
         destino.txt02.text = nesta;
         destino.txt03.text = nnom;
         destino.txt04.text = nced;
         //asignamos acciones a cada boton de cada registro.
         //acá es el problema... me toma siempre el uuultimo registro.
         destino.boton.onPress = function() {
            oprime(identidad[_global.p]);
         };
         //Bajamos cada fila.
         destino._y += 32*(i-1);
         i++;
      }
      _global.limite = limite;
      delete envio_lv;
      delete recibir_lv;
   } else {
      //Muestra el aviso "Consultando..."
      _root.aviso02.gotoAndPlay(2);
   }
};
stop();

Si me puedes ayudar de nuevo, te quedo muy agradecido.

Por gustavogarzon

166 de clabLevel



 

msie7
Citar            
MensajeEscrito el 16 Mar 2007 07:43 pm

Código :

destino.nuevaVariable = identidad[_global.p];
         destino.boton.onPress = function() {
            oprime(this.nuevaVariable);
         };

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

firefox
Citar            
MensajeEscrito el 16 Mar 2007 07:50 pm
Gracias conejo!.
De todos modos, alcancé a arreglarlo de otro modo :lol:

Por gustavogarzon

166 de clabLevel



 

msie7

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.