Comunidad de diseño web y desarrollo en internet online

Filtrar por parametro.

Citar            
MensajeEscrito el 01 May 2011 05:31 pm
Hola, saludos cordiales.
Soy nuevo en el foro y poder aprender y aportar en lo posible en esta comunidad.

Se me a presentado un problema en Flex que no puedo solucionar, soy novato en el tema y me gusto mucho esta plataforma, el problema es el siguiente:

Tengo un datagrid:

Código Flex :

<mx:DataGrid doubleClickEnabled="true" doubleClick="this.currentState='carreras' "click="copiaUpFacultades()" dataProvider="{Facultades2}" id="datagridDominio2" >
<mx:columns>
<mx:DataGridColumn visible="false" headerText="ID" dataField="idFacultad" />
<mx:DataGridColumn headerText="FACULTAD" dataField="nombreFacultad"/>
</mx:columns>
</mx:DataGrid>




Quisiera que al pinchar en una facultad se me desplegaran todas las carreras filtradas por idFacultad; usando amfphp, tengo la siguiente clase:

Código :

[php]
// Filtra Carrera
function filtraCarreras($filtraC)
{
$dbhost="http://localhost";   
$dbusuario="root";   
$dbpassword="123456";
$db="utem";
$mysql = mysql_connect($bdhost,$dbusuario,$dbpassword);
mysql_select_db($db);
$sql = "select idCarrera, nombreCarrera, nombreFacultad, nombreTipoCarrera, idFacultad, idTipoCarrera,status, codigoCarrera, nSemestres, desCarrera from carrera,facultad,tipocarrera where facultad.idFacultad = $filtraC && carrera.Facultad_idFacultad = facultad.idFacultad && carrera.TipoCarrera_idTipoCarrera=tipocarrera.idTipoCarrera && carrera.status=0";
$Result=mysql_query($sql);
return($Result);
}
// -------------------------------------------------------
[/php]


Pero no he sabido como implementar las funciones en Flex para que me envien ese parametro, he tratado change, filter pero no he podido dar. Con la funcion copiaUpFacultades(), copio los datos para actualizar.

Código Flex :

private function copiaUpFacultades():void{
txtIdDomUpdate2.text=datagridDominio2.selectedItem.idFacultad;
txtNombreDomUpdate2.text=datagridDominio2.selectedItem.nombreFacultad;
txtDescripcionDomUpdate2.text=datagridDominio2.selectedItem.descFacultad;
txtCodigoDomUpdate2.text=datagridDominio2.selectedItem.codigoFacultad;
}


Con esto logro obtener la variable de la Facultad y guardarla "txtIdDomUpdate2.text", pero no he logrado pasarla a la clase para que me filtre y al pinchar en la facultad me muestre en otro state solo las carreras, espero puedan ayudarme, oh hay alguna otra forma mas sencilla de hacerlo ?

Se agradece la ayuda.
Saludos ;)

Por surweb

1 de clabLevel



Genero:Masculino  

Webmaster

msie8
Citar            
MensajeEscrito el 02 May 2011 09:05 pm
Estimados me respondo yo mismo, lo que hice fue lo siguiente: (No sé, si es la forma mas eficiente, pero funciona ;) )...


LAS FUNCIONES SIN ENVIAR NINGUN DATO DE FILTRO AL SERVICIO:

Código Flex :

//COPIA DATOS
private function onCarreras():void{
txtIdDomUpdate2.text=datagridDominio2.selectedItem.idFacultad;
var myInt:int = parseInt(txtIdDomUpdate2.text); 
Carreras=servCarreras.getCarreras.lastResult;
Carreras2=Carreras.source;
datosSelect=filtrarDatos("Facultad_idFacultad",myInt);
}
//FILTRA            
private function filtrarDatos(campo:String, valor:*):ArrayCollection{
var lista:ArrayCollection = new ArrayCollection();
for(var i:uint=0; i<Carreras2.length; i++){
var item:Object = Carreras.getItemAt(i);
if(item[campo] == valor){
lista.addItem(item);
}
}
return lista;
}


EL METODO

Código Flex :


<mx:RemoteObject id="servCarreras" endpoint="http://localhost/amfphp/gateway.php" 
   source="carrerasClase" destination="carrerasClase" showBusyCursor="true">
   <mx:method name="getCarreras" result="onCarreras()"/>



Y EL PHP EN AMFPHP

Código PHP :

function getCarreras()
{
$dbhost="http://localhost";   
$dbusuario="xxxxxx";   
$dbpassword="xxxxxxx
$db="xxxxxxxx";
$mysql = mysql_connect($bdhost,$dbusuario,$dbpassword);
mysql_select_db($db);
$sql = "select idCarrera, nombreCarrera, TipoCarrera_idTipoCarrera, status, codigoCarrera, nSemestres, desCarrera, Facultad_idFacultad from carrera where carrera.status=0";
$Result=mysql_query($sql);
return($Result);
}


Luego en el DATAGRID (id:datagridDominio2) de las FACULTADES en el evento CLICK = onCarreras(), con esto al pinchar en un registro nos filtra las carreras por facultad en el DATAPROVIDER del DATAGRID de las CARRERAS {datosSelect} (Tabla Carreras), que es otro state.


Espero a alguien le sirva de algo o lo mejore.
SL2

Por surweb

1 de clabLevel



Genero:Masculino  

Webmaster

msie8

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.