Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/11/2008, 08:13
putoquintana
 
Fecha de Ingreso: agosto-2005
Mensajes: 93
Antigüedad: 19 años, 3 meses
Puntos: 0
conecta solo la primera vez con mysql

Hola,

Mi web consta de dos secciones y un menu con dos botones, una es el datagrid que se carga externamente y otra es una presentación que tambien se carga esternamente.

El datagrid carga los datos a mostrar de una base de datos mysql via php. En este datagrid muestro una sola columna y cuando pulso sobre esta me muestra el resto de datos en unos campos dinámicos situados a la derecha del datagrid. Resulta que cuando cargo por primera vez la sección del datagrid funciona bien, pero si cambio de sección y vuelvo de nuevo a la sección dl datagrid ya no me carga los datos, es decir, sólo funciona bien cuando lo cargo por primera vez. Alguna solución? Gracias

Este es el código que utilizo :

- mostraragenda.php es el fichero que carga los datos de la base de datos a Flash :
Código PHP:
<?php
    
    $link 
mysql_connect ("localhost""root""");
    
mysql_select_db("site");
    
$result mysql_query ("SELECT * FROM agenda") or die ("Invalid query");
    
    echo 
    
"<datos>";

    while(
$row mysql_fetch_array($result)) {
        echo 
    
"<pelicula>
        <id>" 
$row["id"] . "</id>
        <cab>" 
strtoupper($row["cabecera"] ). "</cab>
        <tex>" 
$row["texto"] . "</tex>
        <fec>" 
$row["fecha"] . "</fec>
        <fot>" 
$row["foto"]. "</fot>

    </pelicula>"
;
    }
    
    echo 
"</datos>";
mysql_free_result($result);
    

?>
</documento>

- el código de dentro del flash :

Código:
System.useCodepage = true;

import mx.controls.gridclasses.DataGridColumn;
import mx.styles.CSSStyleDeclaration;

//ESTIL0 DE LA CABRCERA DEL GRID
// Style for DataGrid
var styleObj:CSSStyleDeclaration= new mx.styles.CSSStyleDeclaration();
styleObj.styleName = "myStyle";
styleObj.fontFamily = "Verdana";
styleObj.fontSize = 9;
styleObj.fontWeight = "bold";
styleObj.color = 0x333333;
_global.styles["myStyle"] = styleObj;

pelis_grid.setStyle("styleName", "myStyle");
pelis_grid.setStyle("alternatingRowColors", Array(0xEAEFF4, 0xF8FAFB));
pelis_grid.setRowHeight(30);

pelis_grid.setStyle("hGridLines", true);
pelis_grid.setStyle("hGridLineColor", 0xC1D1E0);
pelis_grid.setStyle("vGridLines", true);
pelis_grid.setStyle("vGridLineColor", 0xC1D1E0);

pelis_grid.setStyle("borderStyle", "inset");
// top
pelis_grid.setStyle("buttonColor", 0xFFFFFF);
pelis_grid.setStyle("highlightColor", 0xFFFFFF);
// right and left
pelis_grid.setStyle("borderCapColor", 0xFFFFFF);
pelis_grid.setStyle("shadowCapColor", 0xFFFFFF);
// bottom
pelis_grid.setStyle("shadowColor", 0x336699);
pelis_grid.setStyle("borderColor", 0xFFFFFF);


//datagrid.resizableColumns = false;
//datagrid.setVScrollPolicy("off");

// themeColor
pelis_grid.setStyle("themeColor", 0xADC1D6); 
pelis_grid.setStyle("useRollOver", true);
pelis_grid.setStyle("textSelectedColor", 0x333333);

// rollOver on Header
pelis_grid.setStyle("rollOverColor", 0xD7FFD7);
	
// Header
//datagrid.setShowHeaders(false);

// Header style
var styleHeader:CSSStyleDeclaration= new mx.styles.CSSStyleDeclaration();
styleHeader.styleName = "myStyleHeader";
styleHeader.fontFamily = "Verdana";
styleHeader.fontSize = 10;
styleHeader.fontWeight = "bold";
styleHeader.color = 0x336699;
_global.styles["myStyleHeader"] = styleHeader;

pelis_grid.setStyle("headerStyle", styleHeader);
pelis_grid.setHeaderHeight(30);
pelis_grid.setStyle("headerColor", 0xFFFFFF);
// Mettre la fleche de tri en bleu
var headerListener = new Object();
headerListener.headerRelease = function(eventObj) {
	var target = eventObj.target;
	var owner  = target.owner;
	var dg = owner.pelis_grid;
	var colorArrow = new Color(dg.sortArrow);
	colorArrow.setRGB(0x336699); 
}
pelis_grid.addEventListener("headerRelease", headerListener);
pelis_grid.owner = this;
// --------------------



		pelis_grid.setHeaderHeight(30);
	    pelis_grid.rowHeight = 60;
		pelis_grid.headerHeight = 30;
		
		



//Declaramos variables
enviar_lv = new LoadVars();
recibir_lv = new LoadVars();
var ordenarHacia:String = new String("asc");
var ordenarPor:String = new String();
var miXML:XML = new XML();
var pelisGrid:Array = new Array();
var alOrdenar:Object = new Object();
var alClicar:Object = new Object();
var alSeleccionar:Object = new Object();
var selec_str:String = new String();





/***************************** EMPEZAMOS *********************************/

//Cargamos el XML
miXML.ignoreWhite = true;
miXML.onLoad = function(success){
	//Cargamos y llenamos el array
	if (success){
		for (i=0; i<miXML.firstChild.firstChild.childNodes.length; i++){
			pelisGrid.addItem({ID: miXML.firstChild.firstChild.childNodes[i].childNodes[0].firstChild,
								   
								   Cabecera: miXML.firstChild.firstChild.childNodes[i].childNodes[1].firstChild,
								   
								   Texto: miXML.firstChild.firstChild.childNodes[i].childNodes[2].firstChild,
								   Fecha: miXML.firstChild.firstChild.childNodes[i].childNodes[3].firstChild,
								   Foto: miXML.firstChild.firstChild.childNodes[i].childNodes[4].firstChild});
								   
								   
		}
		
		
		//Asignamos al DataSet y al DataGrid
		datos.items = pelisGrid;
		datos.filtered = false;
		pelis_grid.dataProvider = datos.dataProvider;
		
		//Propiedades del DataGrid

	pelis_grid.removeColumnAt(pelis_grid.getColumnIndex("ID"));
	pelis_grid.removeColumnAt(pelis_grid.getColumnIndex("Texto"));
	pelis_grid.removeColumnAt(pelis_grid.getColumnIndex("Fecha"));
	pelis_grid.removeColumnAt(pelis_grid.getColumnIndex("Foto"));

	
		//Deshabilitamos ordenación de las columnas, pero no las columnas
		for (i=0; i<3; i++){
			pelis_grid.getColumnAt(i).sortOnHeaderRelease = false;
		}
	}
}
miXML.load("mostraractualidad.php");





/**************************** EVENTOS *******************************/
recibir_lv.onLoad = function(){
	//Vaciamos todo y recargamos el DataGrid con los datos modificados
	pelisGrid.splice(0, pelisGrid.length);
	datos.clear();
	datos.filtered = false;
	pelis_grid.dataProvider = datos.dataProvider;
	
	_root.miXML.load("mostraractividad.php");
}

// ORDENAMOS
alOrdenar.headerRelease = function(objeto){
	//Recogemos la ordenación actual
	miOrdenacion = datos.getIterator();
	//Cogemos el nombre de la columna
	ordenarPor = objeto.target.getColumnAt(objeto.columnIndex).columnName;
	
	if (ordenarHacia == "asc"){
		miOrdenacion.sortOn([ordenarPor], 1);
		ordenarHacia = "des";
	}
	else if (ordenarHacia == "des"){
		miOrdenacion.sortOn([ordenarPor], 2);
		ordenarHacia = "asc";
	}
	//Aplicamos el nuevo orden
	datos.setIterator(miOrdenacion);
}
pelis_grid.addEventListener("headerRelease", alOrdenar);

// FILTRAMOS
alClicar.click = function(objeto){
	if (objeto.target == filtrar_btn){
		//Si no hay filtro lo ponemos y cambiamos el texto en el botón
		if (datos.filtered == false){
			datos.filtered = true;
			datos.filterFunc();
			filtrar_btn.label = "Quitar Filtro";
		}
		//Si hay filtro lo quitamos y cambiamos el texto en el botón
		else if (datos.filtered == true){
			datos.filtered = false;
			filtrar_btn.label = "Filtrar";
		}
		
		//Función filterFunc de Flash
		datos.filterFunc = function(registro:Object) {
			var res_boo:Boolean = new Boolean(false);
			var act_str:String = new String(registro.Cabecera);
			var act_array:Array = new Array();
			
			//Rompemos el string por palabras y lo metemos en un array
			act_array = act_str.split(" ");
			
			for (i=0; i<act_array.length; i++){
				var t1_str:String = new String(act_array[i]);
				var t2_str:String = new String(filtrar_txt.text);
				if (t1_str.toUpperCase() == t2_str.toUpperCase()){
					res_boo = true;
				}
			}
			
			return(res_boo == true);
		}
	}
	
}
filtrar_btn.addEventListener("click", alClicar);


alSeleccionar.change = function(objeto){
	if (objeto.target == pelis_grid){
		selec_str = objeto.target.getItemAt(objeto.target.selectedIndex).Pelicula;
		
		id_txt.text = objeto.target.getItemAt(objeto.target.selectedIndex).ID;
		cabecera_txt.text = objeto.target.getItemAt(objeto.target.selectedIndex).Cabecera;
		texto_txt.text = objeto.target.getItemAt(objeto.target.selectedIndex).Texto;
		fecha_txt.text = objeto.target.getItemAt(objeto.target.selectedIndex).Fecha;
		foto_txt.text = objeto.target.getItemAt(objeto.target.selectedIndex).Foto;

	}
}
pelis_grid.addEventListener("change", alSeleccionar);