Comunidad de diseño web y desarrollo en internet online

crear campos dinamicos con variable php

Citar            
MensajeEscrito el 28 Nov 2005 11:41 pm
Saludos, estoy teniendo problemas al tratar de crear campos dinamicamente aplicando una varible de php a un for, si pongo el valor manualmente no tengo ningun problema pero si lo hago por medio de variable me aparece el siguiente error:

---------------------------
Macromedia Flash Player 8
---------------------------
A script in this movie is causing Macromedia Flash Player 8 to run slowly. If it continues to run, your computer may become unresponsive. Do you want to abort the script?
---------------------------
Yes No
---------------------------

esto es lo que hago manualmente y funciona:


Código :

for (i=1; i<=500; i++) {
    

      
   txt1 = "valores_txt"+i;
   
   createTextField(txt1, getNextHighestDepth(), 120, i*20, 500, 20);
   
   this[txt1].embedFonts = true;
   this[txt1].text = "A, B, C, 352.00, 25.54, 544.55"+i;
   this[txt1].setTextFormat(formato);
   this[txt1].border = true;
   this[txt1].background = true;
   this[txt1].borderColor = 0x000000;
   this[txt1].backgroundColor = fondo;
   this[txt1].selectable = false;
  
} 


Pero necesito cargar el valor de i desde un archivo php y sutituirla por 500 pero meda el error para extraer la varible hago lo siguiente ya que ese valor lo tomo de en numeros de campos que tengo en una base mysql


Código :

var envio_lv:LoadVars = new LoadVars();
var recibir_lv:LoadVars = new LoadVars();


function Crear() {
    
    envio_lv.Prima = 10;
    envio_lv.Tiempo = 12;
    
    envio_lv.sendAndLoad("valor.php", recibir_lv, "POST");
    
    trace(envio_lv.Prima);
    trace(envio_lv.Tiempo);
    
    
    
}


recibir_lv.onLoad = function(exito)
{
    if(exito)
    {
         gotoAndPlay("crear");
    }
};


y en el frame crear:


for (i=1; i<=this.registros; i++) {
    

      
   txt1 = "valores_txt"+i;
   
   createTextField(txt1, getNextHighestDepth(), 120, i*20, 500, 20);
   
   this[txt1].embedFonts = true;
   this[txt1].text = "A, B, C, 352.00, 25.54, 544.55"+i;
   this[txt1].setTextFormat(formato);
   this[txt1].border = true;
   this[txt1].background = true;
   this[txt1].borderColor = 0x000000;
   this[txt1].backgroundColor = fondo;
   this[txt1].selectable = false;
  
}

this.registros es una variable que tengo almacenada en php que cuenta los registros que estan en la tabla:

$VReg = mysql_num_rows($QValor);
echo "&registros=".$VReg; 



pero al hacer eso no me funciona me podrian ayudar a ver cual es el problema no encuentro que puede estar pasando ya que la variable me tira el mismo valor que pongo manualmente pero no me funcina con la varible les agradeceria mucho la ayuda.

Por Mac++

25 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 Nov 2005 05:02 am
cambia aqui

Código :

for (i=1; i<=this.registros; i++) { 


por

Código :

for (i=1; i<=recibir_lv.registros; i++) {



this se usa cuando estas dentro de un evento(ejemplo de evento de LoadVars es: onLoad ) de un objeto, casos especificos para POO en AS2 y otros más, pero ninguno es tu caso.

Y por favor no crees 500 textos dinamicos de una vez, quizás el usuario no vea ni siquiera el 5%.

saludos :)

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 29 Nov 2005 05:33 am
:lol: gracias Maikel en realidad son 700 campos que tengo que bajar mediante un escroll, ya he probado la solucion que me das pero siempre me da el mismo error, y lo que veo es que el flash esta tomando la variable = "" y por eso empieza a crear campos infinitos hasta que se acaba la memoria de la computadora y me tira el mensaje nose porque no lee la variable que le estoy enviando desde php hice un codigo de prueba para ver que valor me da i en el for ya que me pasa lo mismo lo pongo para ver si me puedes ayudar a solucionar el problema



Código :

var envio_lv:LoadVars = new LoadVars();
var recibir_lv:LoadVars = new LoadVars();


function Crear() {
   
   envio_lv.Prima = 10;
   envio_lv.Tiempo = 20;
   
   envio_lv.sendAndLoad("valor.php", recibir_lv, "POST");
   
   
   
   trace(envio_lv.Prima);
   trace(envio_lv.Tiempo);
   
   
   
}


recibir_lv.onLoad = function(exito:Boolean)
{
   

   if(exito)
   { 
      
      
      /
      
      
      
      Regi = envio_lv.registros;   // o tambien he probado con 
                                                          // this.registros;
               Crear();
     
      
   }
};


function Crear()
{
   
for(i=0; i<=Regi; i++)
{
   
texto_txt.text=i;
   
   
}
   
}



y en php tengo:

Código :

<?

$Campos=10;

echo "&registros=".$Campos;

?>


te agradesco la ayuda, si por mi fuera no paso de 10 campos dinamicos pero ya ves como son los clientes siempre inventado imposibles. :)

Por Mac++

25 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 Nov 2005 05:41 am
:shock: 700 campos, dile esto que dijo Zarzamora una vez a tu cliente

Un paciente no le dice al médico como operar


y por otro lado aún no veo la funcionalidad(necesidad) de usar 2 objetos LoadVars, es decir, utilizar uno para enviar y otro para recibir? si con el mismo que envias puedes recibir.



ahora otra cosa cual es la funcionalidad(necesidad) de tener la funcion de crear en el 5 frame?

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 29 Nov 2005 05:56 am

Código :

Un paciente no le dice al médico como operar



jajaja eso mismo le dije yo pero si no es asi no hay trabajo me dijo, es por el echo que tengo que dar formato a una tabla de la cual extraigo 700 registros y el formato que le estoy dando me esta forzando ha hacerlo de esa forma, pero si ni con 10 campos me esta funcionando y lo extraño es que ya lo he hecho de esa forma antes


y por otro lado aún no veo la funcionalidad(necesidad) de usar 2 objetos LoadVars, es decir, utilizar uno para enviar y otro para recibir? si con el mismo que envias puedes recibir.


tienes razon pero lo he intentado de varias maneras y de ninguna me funciona es por eso que lo deje como aparece en los tutoriales de este sitio.


ahora otra cosa cual es la funcionalidad(necesidad) de tener la funcion de crear en el 5 frame?


si tienes razon esa funcion la escribi mal cuando estaba haciendo el post en realidad se llama Probar(); el problema esta en el for (i=1;

Código :

i<=this.registros;
i++) que si le pongo i<=1000;
me los crea sin problemas pero si le pongo la varible no me los crea y la detecta como nula, por que razon puede pasar eso te agradeceria mucho la ayuda.

Por Mac++

25 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 Nov 2005 06:06 am
quita recibir_lv, no lo necesitas, cambia aqui

Código :

envio_lv.sendAndLoad("valor.php", envio_lv, "POST"); 


y en vez de

Código :

recibir_lv.onLoad = function(exito:Boolean)


pon:

Código :

envio_lv.onLoad = function(exito:Boolean)


this.registros, registro NO es de tipo numero como lo es i, asi que soluciones como te lo puse

Código :

for (i=1; i<=Numbe(rrecibir_lv.registros); i++) {

claro ahora seria con envio_lv.registros si haces los cambio que te mencione arriba.

otra solución, que tal una funcion puede recibir parametros y por que no lo usas?


Código :

function Probar (cantidad:Number){
   // tu código
}


y lo puedes invocar asi:

Código :

Probar(Number(this.registros));



la segunda solución es la mejor :wink:


saludos :)

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 29 Nov 2005 06:44 am
:D :D Maikel muchas gracias por todo al fin me ha funcionado hice lo que me dijistes pero siempre me daba error, todo lo que me has dicho esta bien no hay ningun problema en el codigo igual como te decia yo tambien lo habia hecho antes, pero ahora nose porque no me salia asi que borre el archivo php que tenia y copie el codigo en uno nuevo y si me funciono perfectamente no entiendo porque me esta pasando esto ya van 2 veces que tengo problemas con los php solo que de distinta forma, pero al cambiar de archivo me funciona perfecto, te agradesco muchisimo la ayuda gracias por todo cuidate mucho :wink:

Por Mac++

25 de clabLevel



 

firefox

 

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