Cristalab

XML EN AS3

   Foros de discusión -> Flash y Datos, Remoting, WebORB y AMFPHP
Mensaje Autor
Mensaje Publicado: Mie Mar 26, 2008 12:09 am     Citar   firefox 
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.

oscarlosan


clabLevel: 7



MP         
Volver arriba
Mensaje Publicado: Mie Mar 26, 2008 12:39 am     Citar   firefox 
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
 _________________
Quisiera cambiar el mundo, pero no tengo el código fuente

sergestux


clabLevel: 15 Genero:Masculino



MP         
Volver arriba
Mensaje Publicado: Mie Mar 26, 2008 1:17 am     Citar   firefox 
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.

oscarlosan


clabLevel: 7



MP         
Volver arriba
Mensaje Publicado: Jue Mar 27, 2008 5:44 pm     Citar   firefox 
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?
 _________________
So, What's Your Price?

master_of_puppetz


clabLevel: 753 Genero:Masculino


2 Tips

MP     Google Talk  MSN Messenger  
Volver arriba
Responder al tema    Foros de discusión -> Flash y Datos, Remoting, WebORB y AMFPHP Todas las horas son GMT
Página 1 de 1

Respuesta Rapida

  Citar el ultimo mensaje
Adjuntar tu firma

Mostrar mensajes de anteriores:
  

 


Cristalab BloodBerry Style © 2006 Cristalab
Powered by phpBB © 2001, 2002 phpBB Group