Tengo un archivo php que genera un código XML con los datos de una base de datos y tengo un mini programa en AS3 que debe llamar al archivo php y obtener el código xml que este genera. El problema está en que en el momento en que AS3 llama al archivo php, el codigo php no se ejecuta y AS lo toma como texto sin que se realicen las operaciones que deben y por lo tanto no se genera el código xml que debería resultar. Quisiera saber si alguien sabe que es lo que ocurre o como se soluciona. Aqui pongo los codigos que utilizo. Gracias
PHP:
<?php
include("ConexionSQL.php"); //se incluye script que conecta a la base de datos
$q=odbc_exec($conn,"select top 14 IDTodo from Todo where Nombre = 'animals' order by NEWID()");
header('Content-Type: text/xml');
$datos_xml = "<?xml version='1.0' encoding='UTF-8'?>";
$datos_xml .= "<palabras>";
while($e=odbc_fetch_array($q)){
$vector[] = array($e['IDTodo'],$e['Nombre']);
$datos_xml .= "<palabra>".$vector[count($vector)-1][1]."</palabra>";
}
$datos_xml .= "</palabras>";
echo $datos_xml;
?>
Codigo AS3
package {
import flash.net.*;
import flash.display.Loader;
import flash.events.*;
import flash.display.MovieClip;
import flash.system.*;
public class Main extends MovieClip {
//variables para cargar el archivo que contiene los datos
var cargador: URLLoader = new URLLoader;
var pedido: URLRequest = new URLRequest;
var datosXML: XML = new XML();
var cadenaXML: String;
System.useCodePage = true;
var Photos_xml = new XML();
//Inicio
public function Main() {
//inicializacion de las variables para cargar el archivo de datos
pedido.url = "sqlserver.php";
pedido.method = URLRequestMethod.POST;
//Excepcion en caso de prensentarse error al momento de cargar los datos
try{
//carga del archivo de datos
cargador.addEventListener(Event.COMPLETE, ExtraerDatos);
cargador.load(pedido);
}catch(error: Error){
trace("Error "+error);
}
}
//funcion para extaer los datos en XML a un array
private function ExtraerDatos(e: Event): void
{
cadenaXML = e.target.data;
datosXML = XML(cadenaXML);
trace(datosXML);
for each (var objeto: XML in datosXML.palabra){
datos.push([objeto.children()[0], objeto.children()[1], objeto.children()[2]]);
}
trace("tam Datos "+datos.length);
}
}
}