Comunidad de diseño web y desarrollo en internet online

XML EN AS3

Citar            
MensajeEscrito el 26 Mar 2008 12:09 am
Hola buenas noches,
A ver si me podeis ayudar:

tengo un php que devuelve un xml mediante echo. Como cargo este xml en flash?
No consigo cargar la estructura xml del php en el componente datagrid

el php
-------
<?php
......

$result = mysql_query ($consulta);

echo '<?xml version="1.0" encoding="UTF-8"?>';
echo '<documento>';
echo "<datos>";
while($row = mysql_fetch_array($result)) {
echo
"<prov>
<et1>" . $row["id"] . "</et1>
<et2>" . $row["nombre"] . "</et2>
</prov>";

}
echo "</datos>";
echo '</documento>';

?>


el fla en as3 (con un xml funciona pero con php no. Y en as2 lo tengo funcionando con loadvars y sendAndLoad)
--------------
--------------
var enviar:URLRequest = new URLRequest("mostrar.php");
var recibir:URLLoader = new URLLoader();
var variables:URLVariables = new URLVariables();
var tabla:String = "proveedor";
variables.tabla_swf = tabla;
variables.campo_swf = id;
enviar.method = URLRequestMethod.POST;
enviar.data = variables;
recibir.dataFormat = URLLoaderDataFormat.VARIABLES;
recibir.load(enviar);

recibir.addEventListener(Event.COMPLETE,Cargar);

//se ejecuta la funcion cargar ya que muestra "cargado"
//pero no carga nada en el datagrid
function Cargar(event):void{
status_txt.text = "cargado";
var xml:XML = new XML(recibir.data);
var dp:DataProvider = new DataProvider(xml);
//nota "dg" es el nombre de instancia del datagrid q hay en stage
dg.dataProvider = dp;
}

Muchas gracias.

Por oscarlosan

73 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Mar 2008 12:39 am
Tienes que darle la estructura correcta por medio de tabuladores y saltos de linea, por ejemplo: asi lo tengo yo:

Código :

   $Cadena = "<Ventas>\n";
   for($Cont=0; $Cont < $CantSuc; $Cont++)         //Recorro todas las sucursales
   { 
      $Cadena .= "\t<Sucursal>\n";
      $SucActual=pg_result($Sucursales, $Cont, 0);   //El id de la sucursal
      $SucDesc = pg_result($Sucursales, $Cont, 1);   //La descripcion la sucursal
      $Cadena .= "\t\t<SucDesc>$SucDesc</SucDesc>\n";   //Sucursal
      $Cadena .= "\t\t<Venta>" . number_format($Datos[$SucActual]["Hoy"], 2, '.', ',' ) . "</Venta>\n";   //Ventas de hoy
      $Cadena .= "\t\t<Prueba>$FechaIni@$FechaFin</Prueba>\n";   //Datos de Prueba
      $Cadena .= "\t</Sucursal>\n";   
   }
   $Cadena .= "</Ventas>";


Y la primera linea no esta bien escrita por que estas incluyendo comillas dobles dentro de comillas simples (alreves si podria ser):

Código :

echo '<?xml version="1.0" encoding="UTF-8"?>'; 

Puedes omitirla y buscar otra manera de hacer lo mismo de tal manera que al final al ver el codigo fuente que te da tu archivo php debe ser asi como tienes el xml que mencionas

Por sergestux

49 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 26 Mar 2008 01:17 am
la forma en q esta escrito el php esta bien pq en as2 me funciona perfectamente y me carga los datos de la BD en el datagrid. El problema esta en el fichero .fla que no carga el contenido xml.

He probado modificando esto:
trace(unescape(recibir.data)); // me devuelve los datos de la BD pero tb las etiquetas lanzadas por echo
var xml:XML = new XML(unescape(recibir.data));

ahora si que me añade una fila al datagrid pero no contiene datos.

Por oscarlosan

73 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Mar 2008 05:44 pm
has intentado esto:

Código :

var xml:XML = new XML(recibir.data);
trace(xml.toXMLString());

si te esta fallando el DataProvider, pudes probar recorriendo el XML e ir asignando cada item a cada fila del DG

sergestux escribió:

Tienes que darle la estructura correcta por medio de tabuladores y saltos de linea

No hay "estructuras correctas", un XML puede ser una sola línea, la clase XML de AS3 sabrá como parsear esa cadena, de hecho, si mandas saltos de línea y tabulaciones, podrías tener problemas al trabajar tus XML's pues tienes espacios en blanco que después tendrás que indicarle a AS3 que los omita.

sergestux escribió:

Y la primera linea no esta bien escrita por que estas incluyendo comillas dobles dentro de comillas simples

100% válido, alguna vez has visto la documentación de PHP para saber el uso de comillas simples y dobles?

Por master_of_puppetz

Claber

2483 de clabLevel

7 tutoriales
3 articulos

Genero:Masculino   Premio_Secretos

WebDev (Flex + PHP + JS)

firefox
Citar            
MensajeEscrito el 04 Abr 2011 08:21 pm
Yo tengo el mismo error, por alguna extraña razón no puedo hacer que se cargue el php como xml. Se pudo resolver el problema?

Por aldebaran88

10 de clabLevel



 

chrome

 

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