Hola, bueno voy a ver si me puedo explicar mejor...
El flash cuando inicia llama a la funcion leerXML( esta funcion levanta del XML los datos y los carga en el datagrid), luego el swf se queda a la espera de que se presione un boton (insertar, modificar, eliminar). Si se presiona insertar, modificar o eliminar, funciona correctamente... se envia al PHP los datos y este los ejecuta; el PHP inserta, modifica o elimina en la base de datos MySQL y genera el nuevo archivo "datos.xml". El problema es que las modificaciones que se hicieron en la base de datos no se reflejan en el datagrid...
Verifico la base de datos y el archivo XML y ambos han sido modificados correctamente, pero el flash me sigue levantando la primera version del XML; es mas, apago la PC, y la vuelvo a conectar, y me sigue mostrando la primera version.
Aca les dejo el pedazo de codigo que afecta a esto, Les puse la parte de insertar para no hacerlo tan largo y pesado de leer.
Gracias por la ayuda!!!.
Código:
function leerXML(){
var misdatos:XML = new XML();
misdatos.load("datos.xml");
misdatos.ignoreWhite = true;
var proveedor:Array = new Array();
misdatos.onLoad = function() {
for (j=0; j<misdatos.childNodes.length; j++){
proveedor.addItem({id:misdatos.childNodes[j].childNodes[0].childNodes, titulo:misdatos.childNodes[j].childNodes[1].childNodes, genero:misdatos.childNodes[j].childNodes[5].childNodes, cant_total:misdatos.childNodes[j].childNodes[6].childNodes, alquiladas:misdatos.childNodes[j].childNodes[7].childNodes});
}
datagrid.dataProvider = proveedor;
datagrid.getColumnAt(0).width = 50;
datagrid.getColumnAt(1).width = 250;
datagrid.getColumnAt(2).width = 150;
datagrid.getColumnAt(3).width = 20;
datagrid.getColumnAt(4).width = 20;
datagrid.selectedIndex = 0;
}
}
lv_Insertar.onLoad = function(success:Boolean) {
if (success){
leerXML();
datagrid.selectedIndex=datagrid.getLength()-1; //dejo como seleccionado el último item del datagrid
estadotxt.text= this.msj_error;
}else estadotxt.text ="Flash no pudo levantar el archivo XML";
}
var alClick:Object = new Object();
var accion:Number;
alClick.click = function(boton) {
switch (boton.target) {
case btnInsertar :
btnEliminar.enabled=btnModificar.enabled=btnConsultar.enabled=false;
datagrid.enabled=false;
estadotxt.text = "Insertar";
.
. // aca muestro el formulario de insertar... lo saque para abreviar
.
break;
case btnSi :
//insertar
estadotxt.text = "Insertando...";
cargarDatos();
btnEliminar.enabled=btnModificar.enabled=btnConsultar.enabled=true;
datagrid.enabled=true;
if (hayarchivo){
if(fileRef.upload("http://www.mipag.com.ar/upLoad/uploadFile.php")) {
contenedor.sendAndLoad("insertar_pelicula.php", lv_Insertar, "POST");
}else {
estadotxt.text = "No se pudo insertar el registro porque no se pudo cargar la imagen seleccionada";
}
}else {
contenedor.sendAndLoad("insertar_pelicula.php", lv_Insertar, "POST");
estadotxt.text = "Se ha insertado el registro correctamente";
}
break;
.
.
.
Y como tenia la duda de que estaba en el cache, al archivo PHP que levanta el SWF le puse esto:
Código PHP:
<?PHP
// No almacenar en el cache del navegador esta página.
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Expira en fecha pasada
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // Siempre página modificada
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Pragma: no-cache"); // HTTP/1.0
?>
YA NOSE QUE HACER... ESTOY DESESPERADO...