Comunidad de diseño web y desarrollo en internet online

problemas con xml en actionScript 2.0

Citar            
MensajeEscrito el 18 Sep 2008 07:25 am
Hola tengo un problema, la cuestion es que tengo varios combobox que se rellenan de un xml que trae php de una base de datos de MySql.

Todo funciona bien menos el ultimo que tiene que cargar los datos en el dataGrid. Porque en el for que hace que valla metiendo los datos, solo cuenta como que el xml solo tiene un hijo, i claro yo sabia que traia 6, la cuestion esque desde php ice que me generara un xml con lo que traia, i efectivamente me trae 6, empece con los "trace" y mi sorpresa es que si hago el trace a datos.respuesta (que es lo que me trae php) me trae el contenido entero, (pero despues yo lo que ago es meterlo en una variable XML (como siempre lo ago, con sus ignoreWhite i todo), i resulta que si haces el trace a la variable solo te coje el primer campo, es decir solo el primer hijo (logico que en el datagrid solo me ponga un resultado)... Si quereis os pego el codigo, e incluso os pego el resultado del trace con datos.respuesta, y el trace de la variable xml.

Un Saludo!

Por Cubel

Claber

139 de clabLevel



Genero:Masculino  

Valencia, España

chrome
Citar            
MensajeEscrito el 18 Sep 2008 09:40 am
Si, postea los resultados y el código.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 19 Sep 2008 07:34 am
Ok os pongo el codigo:

Código :

var xmlProducto:XML = new XML ()
xmlProducto.ignoreWhite = true
function cargarProducto(datosACargar:String) {
   var datos:LoadVars = new LoadVars();
   var numeroHijos:Number = new Number();
   datos.liquidacion = datosACargar;
   datos.sendAndLoad("http://localhost/Webs/NuevoLec/contenido/seleccionaTodosLosProductos.php",datos,"post");
   datos.onLoad = function() {
      trace("entra en el onload");
      xmlProducto.parseXML(datos.respuesta.toString());
      trace ("EL XML: \n"+xmlProducto+"\n FIN DEL XML ------")
      trace("Respuesta: "+datos.respuesta);
      // Aqui hacemos el FOR.
      numeroHijos = xmlProducto.childNodes[0].childNodes.length;
      for (i=0; i<numeroHijos; i++) {
         _root.resultado_dg.addItem({data:i, label:xmlProducto.childNodes[0].childNodes[i].childNodes[0].firstChild.toString()});
      }
      _root.espere._visible = false;
   };
}

Y ahora os muestro lo que sale en el trace:
Trace Del xmlProducto:

Código :

EL XML: 
<?xml version="1.0" encoding="iso-8859-1"?><Datos><item><id>104</id><refproducto>302008937</refproducto><empresa>LEC/08-002</empresa><liquidacion>Referencia de Prueba</liquidacion><familia>nd</familia><producto>Equipos para Procesamiento de Informaci�producto&gt;<descripcion>Revisar detalle en docuento adjunto</descripcion><precio>5.000</precio><img1>OFICINASCANALS.jpg</img1><img2>VISTAOFICINASCANALS.jpg</img2><img3>noDisponible.jpg</img3><img4>nd</img4><img5>nd</img5><img6>nd</img6><visible>no</visible><pdfliquidacion>nd</pdfliquidacion><pdfindividual>nd</pdfindividual></producto></item></Datos>
 FIN DEL XML ------

y el trace de la variable respuesta:

Código :

Respuesta: <?xml version="1.0" encoding="iso-8859-1"?><Datos><item><id>104</id><refproducto>302008937</refproducto><empresa>LEC/08-002</empresa><liquidacion>Referencia de Prueba</liquidacion><familia>nd</familia><producto>Equipos para Procesamiento de Informaci�producto><descripcion>Revisar detalle en docuento adjunto</descripcion><precio>5.000</precio><img1>OFICINASCANALS.jpg</img1><img2>VISTAOFICINASCANALS.jpg</img2><img3>noDisponible.jpg</img3><img4>nd</img4><img5>nd</img5><img6>nd</img6><visible>no</visible><pdfliquidacion>nd</pdfliquidacion><pdfindividual>nd</pdfindividual></item><item><id>107</id><refproducto>082008951</refproducto><empresa>LEC/08-002</empresa><liquidacion>Referencia de Prueba</liquidacion><familia>nd</familia><producto>Instalaciones</producto><descripcion>Revisar detalles adjuntos</descripcion><precio>60.000</precio><img1>SALACOMPRESORES.jpg</img1><img2>SALACALDERASBENIFAYO.jpg</img2><img3>VISTACENTROSTRANSFORMACION.jpg</img3><img4>nd</img4><img5>nd</img5><img6>nd</img6><visible>no</visible><pdfliquidacion>nd</pdfliquidacion><pdfindividual>nd</pdfindividual></item><item><id>101</id><refproducto>512008906</refproducto><empresa>LEC/08-002</empresa><liquidacion>Referencia de Prueba</liquidacion><familia>nd</familia><producto>Maquinaria (Canals)</producto><descripcion>Maquinaria de produci� terminaci�/descripcion><precio>750.000</precio><img1>MAQUINARIACALCETERIA.jpg</img1><img2>VISTAMAQUINASCOSER.jpg</img2><img3>SECCIONTINTE.jpg</img3><img4>nd</img4><img5>nd</img5><img6>nd</img6><visible>no</visible><pdfliquidacion>nd</pdfliquidacion><pdfindividual>nd</pdfindividual></item><item><id>103</id><refproducto>522008919</refproducto><empresa>LEC/08-002</empresa><liquidacion>Referencia de Prueba</liquidacion><familia>nd</familia><producto>Marcas Aracil</producto><descripcion>Detalles en documento adjunto.</descripcion><precio>100.000</precio><img1>noDisponible.jpg</img1><img2>noDisponible.jpg</img2><img3>noDisponible.jpg</img3><img4>nd</img4><img5>nd</img5><img6>nd</img6><visible>no</visible><pdfliquidacion>nd</pdfliquidacion><pdfindividual>nd</pdfindividual></item><item><id>102</id><refproducto>512008916</refproducto><empresa>LEC/08-002</empresa><liquidacion>Referencia de Prueba</liquidacion><familia>nd</familia><producto>Marcas Ferrys</producto><descripcion>Detalles en documento adjunto.</descripcion><precio>3.000.000</precio><img1>noDisponible.jpg</img1><img2>noDisponible.jpg</img2><img3>noDisponible.jpg</img3><img4>nd</img4><img5>nd</img5><img6>nd</img6><visible>no</visible><pdfliquidacion>nd</pdfliquidacion><pdfindividual>nd</pdfindividual></item><item><id>105</id><refproducto>012008942</refproducto><empresa>LEC/08-002</empresa><liquidacion>Referencia de Prueba</liquidacion><familia>nd</familia><producto>Mobiliario de Oficina</producto><descripcion>Revisar detalles en documento adjunto</descripcion><precio>5.000</precio><img1>VISTAOFICINASCANALS.jpg</img1><img2>noDisponible.jpg</img2><img3>noDisponible.jpg</img3><img4>nd</img4><img5>nd</img5><img6>nd</img6><visible>no</visible><pdfliquidacion>nd</pdfliquidacion><pdfindividual>nd</pdfindividual></item><item><id>106</id><refproducto>052008943</refproducto><empresa>LEC/08-002</empresa><liquidacion>Referencia de Prueba</liquidacion><familia>nd</familia><producto>Vehiculos Varios</producto><descripcion>Revisar detalles en documento adjunto</descripcion><precio>30.000</precio><img1>noDisponible.jpg</img1><img2>noDisponible.jpg</img2><img3>noDisponible.jpg</img3><img4>nd</img4><img5>nd</img5><img6>nd</img6><visible>no</visible><pdfliquidacion>nd</pdfliquidacion><pdfindividual>nd</pdfindividual></item></Datos>


Bueno la cuestions eske como podeis ver el xml ke me trae en la respuesta es mucho mas largo que lo que se mete en la variable... i no se porque... y formado esta bien formado porque en php le digo ke me lo haga i despues cuando lo abro los nodos estan bien i todo perfecto...

Por Cubel

Claber

139 de clabLevel



Genero:Masculino  

Valencia, España

chrome
Citar            
MensajeEscrito el 19 Sep 2008 09:58 am
Ya esta solucionado. el problema a sido que la base de datos mandava palabras con acentos... entonces desvariaba un poco..
poniendole:
System.useCodepage = true
ya se a solucionado.. gracias de todas formas!

Por Cubel

Claber

139 de clabLevel



Genero:Masculino  

Valencia, España

chrome
Citar            
MensajeEscrito el 19 Sep 2008 11:59 am
Sabes lo que hace exactamente System.useCodepage = true ?

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 19 Sep 2008 03:46 pm
Si, por?
el problema es que no me cogia vien los hacentos i me los devolvia con simbolos raros i esos simbolos hacia flipar a la variable xml.

Por Cubel

Claber

139 de clabLevel



Genero:Masculino  

Valencia, España

chrome
Citar            
MensajeEscrito el 19 Sep 2008 05:54 pm
Parece que no sabes bien lo que hace.

Este comando toma la página de códigos tradicional del sistema operativo donde está funcionando el SWF y trabaja con él, por lo que si estás en un sistema operativo que utiliza los caracteres que necesitas te funcionará bien, pero si lo pones en un sistema operativo que no los utiliza, te volverá a suceder por lo que posteabas el problema.

Lo siguiente está copiado y pegado de la documentación de Adobe:


Si establece System.useCodepage con el valor true, recuerde que la página de códigos tradicional del sistema operativo en el que se ejecuta el reproductor debe incluir los caracteres utilizados en el archivo de texto externo para que se muestre el texto. Por ejemplo, si carga un archivo de texto externo que contiene caracteres chinos, dichos caracteres no se visualizarán en un sistema que utilice la página de códigos CP1252, ya que dicha página de códigos no contiene caracteres chinos.

Para garantizar que los usuarios de todas las plataformas puedan ver los archivos de texto externos que se utilizan en sus archivos SWF, debe codificar todos los archivos de texto externos como Unicode y establecer System.useCodepage en false de forma predeterminada. De esta forma, Flash Player 6 y versiones posteriores interpretará el texto como Unicode.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 19 Sep 2008 05:54 pm
Parece que no sabes bien lo que hace.

Este comando toma la página de códigos tradicional del sistema operativo donde está funcionando el SWF y trabaja con él, por lo que si estás en un sistema operativo que utiliza los caracteres que necesitas te funcionará bien, pero si lo pones en un sistema operativo que no los utiliza, te volverá a suceder por lo que posteabas el problema.

Lo siguiente está copiado y pegado de la documentación de Adobe:


Si establece System.useCodepage con el valor true, recuerde que la página de códigos tradicional del sistema operativo en el que se ejecuta el reproductor debe incluir los caracteres utilizados en el archivo de texto externo para que se muestre el texto. Por ejemplo, si carga un archivo de texto externo que contiene caracteres chinos, dichos caracteres no se visualizarán en un sistema que utilice la página de códigos CP1252, ya que dicha página de códigos no contiene caracteres chinos.

Para garantizar que los usuarios de todas las plataformas puedan ver los archivos de texto externos que se utilizan en sus archivos SWF, debe codificar todos los archivos de texto externos como Unicode y establecer System.useCodepage en false de forma predeterminada. De esta forma, Flash Player 6 y versiones posteriores interpretará el texto como Unicode.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 22 Sep 2008 08:38 am
Ok, Gracias, elchininet! pero ya sabia que te coge el lenguaje del sistema, por eso lo de System.
I lo de adobe tiene razon por si se diera ese caso, el problema que esto va para una intranet por eso no me calentado la cabeza porque aqui todos utilizan el mismo lenguaje en el ordenador.

Un saludo a todos!

Por Cubel

Claber

139 de clabLevel



Genero:Masculino  

Valencia, España

chrome

 

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