Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/04/2008, 09:34
Avatar de Alesius
Alesius
 
Fecha de Ingreso: marzo-2008
Mensajes: 87
Antigüedad: 16 años, 1 mes
Puntos: 1
Re: Carga de un archivo XML

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...