Comunidad de diseño web y desarrollo en internet online

XML para generar tabla de datos

Citar            
MensajeEscrito el 19 Mar 2007 01:37 am
Hola, me llamo Pablo y soy asiduo de esta pagina. Español aunque pegandome ahora con la vida Londinense.

A lo que iba, tengo un site que quiero que se actualice con una base de datos, para ello quiero tomar los datos desde un XML que creare con PHP. Seguro que hay maneras mejores pero para esta es la primera que se me ocurrio.

El caso es que en principio no da errores, pero no carga correctamente, es como si cargara los datos despues de cargar toda la animacion, pero esto es una vision muy subjetiva mia.

La ruta de la animacion donde actualizo todas las animaciones seria algo asi:
HTML -> main.swf -> contenido4.swf



En el primer frame de contenido 4 tengo el siguiente codigo:

Código :

//--Aqui cargo todos los datos----
System.useCodepage = true;
mixml=new XML();
mixml.load("casas.xml");
mixml.ignoreWhite=true;

mixml.onLoad=function(){
total=this.firstChild.childNodes.length;
trace(total);

//--Creo una tabla [numero de nodos]x[numero de datos] ----
var numerodecasas=total;
numerodecasas++;
var numerodedatos=7;

//--Creo la tabla---------------------
this.casas=new Array(numerodecasas);
for (i=0; i<numerodecasas; i++)
{
   this.casas[i]=new Array(numerodedatos);
   for (j=0; j<numerodedatos; j++)
   {
      this.casas[i][j]="" + i + j;
   }
}

//---Para cada nodo cojo los atributos y los almaceno en la tabla
for(i=0;i<total;i++){

//--Cojo atributos
xmlcodigo=this.firstChild.childNodes[i].attributes.codigo;
xmlprecio=this.firstChild.childNodes[i].attributes.precio;
xmlzona=this.firstChild.childNodes[i].attributes.zona;
xmldisponible=this.firstChild.childNodes[i].attributes.disponible;
xmltipo=this.firstChild.childNodes[i].attributes.tipo;
xmlincluido=this.firstChild.childNodes[i].attributes.incluido;
   
//---Los dejo en su sitio   
this.casas[i][1]="Zona "+xmlzona+"(Codigo:"+xmlcodigo+")";
this.casas[i][2]="Hab. "+xmltipo+"/"+xmlprecio+"pw "+xmlincluido+"";
this.casas[i][3]="Disponible a partir: "+xmldisponible+"";
this.casas[i][4]=""+xmlcodigo+"F1.jpg";
this.casas[i][5]="casa"+xmlcodigo+".swf";
this.casas[i][6]=xmlzona;
this.casas[i][7]=xmlprecio;
//----trace(this.casas[i][1]);
//---Aqui una vez habia un trace que salia antes del trace(total), no se porque
}
}



Esta tabla la utilizo despues en contenido4.swf para mostrar todas la habitaciones disponibles en cada momento, al principio tenia un casas.as que compilaba cada vez, asique el resto del codigo esta correcto, pero ahora cuando trato de hacerlo dinamicamente, la tabla casas no existe o esta vacia.
Si alguien me puede echar una mano...no se si es que me falla algun concimiento basico de XML o que no se puede crear la tabla asi dinamicamente.....bueno, lo dicho.

Muchas gracias de antemano.
Pablo.

Por pabloperea

3 de clabLevel



 

msie
Citar            
MensajeEscrito el 19 Mar 2007 06:48 am
Solo haz una prueba rapido, pon los swf y html al mismo nivel (misma carpeta) y me dices si te funciona. Es muy probable que sea problema de rutas

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 19 Mar 2007 10:55 am
Hola, gracias por responder.

Creo que no me he explicado bien, todos los archivos estan en la misma carpeta, todos los HTML y SWF. Con lo de ruta me referia a la ruta de archivos SWF que tenia que cargar para llegar hasta el SWF donde tengo el problema.

Voy a intentar aclarar donde "creo" que tengo yo el problema. Antes toda esa tabla la tenia metida a mano en el codigo en ese primer frame, y todo iba genial, todos se llevaban como hermanos, pero ahora he intentado usar XML para cargar cada vez unos datos. Tengo entendido que XML es algo asi como el medio de transporte entre PHP y FLASH, y es eso precisamente lo que quiero hacer, que un PHP me mande un XML. De momento, he creado el XML a mano y haciendo un trace parece que realmente el XML carga los datos correctamente y los mete donde deberia. Pero a la hora de hacer rodar la aplicacion, cargo el contenido4.swf donde se muestran las habitaciones y la tabla esta vacia.

Por dar algo mas de informacion dejo un trocito del codigo, pero no estoy seguro que sea de ayuda:

Código :

this._parent.numcasaanterior=this._parent.numcasaini;
for (i=this._parent.numcasaini; i<this._parent.numerodecasas&&casasmostradas<6; i++)
{
   if((this._parent.casas[i][7]<=max_precio)&&((this._parent.casas[i][6]==max_zona)||(max_zona<0)))
   {
      this._parent["caja"+posicion].txt1="· "+this._parent.casas[i][1];
      this._parent["caja"+posicion].txt2="· "+this._parent.casas[i][2];
      this._parent["caja"+posicion].txt3="· "+this._parent.casas[i][3];
      this._parent["caja"+posicion].foto.loadMovie("casas/fotos/" + this._parent.casas[i][4]);
      this._parent["caja"+posicion].casaacargar=this._parent.casas[i][5];
      this._parent["caja"+posicion].casa_cc=this._parent.casas[i][1];
      this._parent["caja"+posicion].servicio_cc="larga";
      this._parent["caja"+posicion].masinformacion.gotoAndStop(2);

      casasmostradas++;
      posicion++;
   } else {
   
   }
}

Por pabloperea

3 de clabLevel



 

msie
Citar            
MensajeEscrito el 19 Mar 2007 11:03 am
Haciendo pruebas, he hecho trace de contenido de la tabla. Cuando el trace lo hago donde se va a usar el codigo por ejemplo el Layer 8 la tabla esta todavia vacia, cuando yo ya la he cargado en el Layer 1.

Layer 1 - Aqui tengo la carga del XML
Layer 2
....
Layer 8 - Aqui uso los datos en cuesion

Por pabloperea

3 de clabLevel



 

msie
Citar            
MensajeEscrito el 19 Mar 2007 01:53 pm
He conseguido que funcione cargandolo en main.swf que como se carga antes necesariamente que contenido4.swf parece que funciona.

Si alguien sabe porq pasa esto y sabe como puedo cargarlo en contenido4.swf que lo diga para que quede todo un poquito mas organizado.

Muchas gracias.
Pablo

Por pabloperea

3 de clabLevel



 

msie

 

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