Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lucsenna

Conexao Mysql com Flex

Recommended Posts

Ola Galera do iMasters,

 

sou novo por aqui, por isso nao sei se postei minha duvida no lugar certo.

 

sem muito la la la vou direto ao assunto.

 

estou desenvolvendo uma aplicação em flex/mysql/php/zend e utilizei o DataWizard do flex para cria o serviço de dados.

populei meu dropdown com os dados desejados (cidades) e populei minha datagrid com seu respectivos dados (cadastro de cliente), ate ai tudo bem. Foi quando me deparei com uma dificuldade na qual ja se fazem duas semanas que tento resolver e nada. pelo pouco conhecimento que tenho em programação sei que é algo bobo, mas não consigo solucionar.

 

Dificuldade: quero selecionar uma cidade em meu dropdown e exibir todos os meus clientes cadastrados na mesma cidade em meu datagrid. simples assim! encontrei alguns tutoriais na net falando sobre o assunto, fiz exatamente o que manda la mas infelizmente não obtive exito (não popula o datagrid), talvez esteja fazendo algor que nao consiga perceber. por isso segue abaixo o meu codigo para que possam me ajudar. grato!!!

 

CÓDIGO FLEX

 

//Populando DropDownList Cidade

protected function ddl_cidade_cadastro_solutions_creationCompleteHandler(event:FlexEvent):void

{

getAllMunicipioResult.token = municipioService.getAllMunicipio();

}

 

//Populando DataGrid

protected function ddl_cidade_cadastro_solutions_changeHandler(event:IndexChangeEvent):void

{

txt_recebe_cidade.text = ddl_cidade_cadastro_solutions.selectedItem.Cidade_PJ;

getAllEmpresasResult.token = empresasService.getAllEmpresas(ddl_cidade_cadastro_solutions.selectedItem.Cidade_PJ);

 

}

 

 

 

 

 

CÓDIGO PHP

 

public function getAllEmpresas($q) {

 

$stmt = mysqli_prepare($this->connection, "SELECT * FROM $this->tablename WHERE 'Cod_Cidade_PJ' LIKE '%$q%'");

$this->throwExceptionOnError();

 

mysqli_stmt_execute($stmt);

$this->throwExceptionOnError();

 

$rows = array();

 

mysqli_stmt_bind_result($stmt, $row->Codigo, $row->CGC, $row->CEmpresa, $row->NomeFantasia, $row->RazaoSocial, $row->Endereco_PJ, $row->Bairro_PJ, $row->CEP_PJ, $row->Cod_Cidade_PJ, $row->Cidade_PJ, $row->Estado_PJ, $row->TelefoneDDD_PJ, $row->Telefone_PJ, $row->FaxDDD_PJ, $row->Fax_PJ, $row->Email_PJ, $row->RecEmail_PJ, $row->HomePage_PJ, $row->NumFunc, $row->CodPorte, $row->Porte, $row->CodRegiao, $row->Regiao, $row->CodCNAE, $row->CNAE, $row->Produto, $row->ExportaPais, $row->IndustriaSN, $row->AnuncianteSN, $row->RowNumber, $row->negrito);

 

while (mysqli_stmt_fetch($stmt)) {

$rows[] = $row;

$row = new stdClass();

mysqli_stmt_bind_result($stmt, $row->Codigo, $row->CGC, $row->CEmpresa, $row->NomeFantasia, $row->RazaoSocial, $row->Endereco_PJ, $row->Bairro_PJ, $row->CEP_PJ, $row->Cod_Cidade_PJ, $row->Cidade_PJ, $row->Estado_PJ, $row->TelefoneDDD_PJ, $row->Telefone_PJ, $row->FaxDDD_PJ, $row->Fax_PJ, $row->Email_PJ, $row->RecEmail_PJ, $row->HomePage_PJ, $row->NumFunc, $row->CodPorte, $row->Porte, $row->CodRegiao, $row->Regiao, $row->CodCNAE, $row->CNAE, $row->Produto, $row->ExportaPais, $row->IndustriaSN, $row->AnuncianteSN, $row->RowNumber, $row->negrito);

}

 

mysqli_stmt_free_result($stmt);

mysqli_close($this->connection);

 

return $rows;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você poderia postar o código, fica mais fácil de entender onde está o problema.

 

Eu trabalho com Flex e Java, mas acredito que a lógica seja muito semelhante.

 

E prefiro fazer minhas ligações manualmente, não uso data wizard prefiro ter controle do que eu estou fazendo.

 

[Edit]

Aproveitando, dependendo da quantidade de informações isso pode não ser tão viável, mas você pode dar uma olhada nesse link, que mostra como criar um filtro de dados em tempo de execução, (isso elimina a carga de dados do servidor) http://blog.vilourenco.com.br/flex-filtrando-dados-em-tempo-real/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ezequiel,

 

Obrigado pela tentativa de ajuda. Consegui resolver aqui. Como eu mesmo disse era uma bobagem. Só precisava passar os parametros no serviços

 

Duvida: getAllMunicipioResult.token = municipioService.getAllMunicipio();

Solução: getAllMunicipioResult.token = municipioService.getAllMunicipio(ddl_cidades.selectedItem.item a ser pesquisado);

 

Como minha base de dados contem mais de 17000 clientes cadastrados, ficou inviável a pesquisa como vc mesmo me sugeriu. Então utilizei paginação e funcionou sem problemas.

 

Solução Final: getPaged_MunicipioResult.token = municipioService.getPaged_Municipio(ddl_cidades.selectedItem.item a ser pesquisado);

 

Lembrando que utilizei o DataWizard para criar os serviços. So precisei fazer uma peque na alteração na minha consulta SQL.

 

se precisar de alguma informação para testar e executar ai e so me falar.

 

Um Abraço !



Pois é galera. agora estou com a seguinte duvida.

Estou desenvolvendo uma tela de login no Flex com mysql e php. montei o código abaixo e ia tudo bem, mas nao esta fazendo a autenticação do usuário. Alguem ai tem uma sugestão?

 

<fx:Script>

<![CDATA[

import mx.collections.ArrayCollection;

import mx.controls.Alert;

import mx.events.FlexEvent;

import mx.rpc.events.ResultEvent;

 

import valueObjects.User;

import mx.validators.Validator;

 

protected function getUser_pagedResult_resultHandler(result:ResultEvent):void

{

if(result.result as Boolean==true){

Alert.show("Autenticado","Autenticou?");

}else{

Alert.show("NÃO Autenticado","Autenticou?");

}

}

 

protected function logar():void

{

getUser_pagedResult.token=userService.getUser_paged(email.text, pass.text);

}

]]>

</fx:Script>

<fx:Declarations>

<valueObjects:User id="user"/>

<userservice:UserService id="userService" fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)" showBusyCursor="true"/>

<s:CallResponder id="getUser_pagedResult" result="getUser_pagedResult_resultHandler(event)"/>

 

<!--Validadores-->

<mx:EmailValidator id="val1" property="text" required="true" source="{email}"

trigger="{btLogin}" triggerEvent="click"/>

<mx:Validator id="val2" property="text" required="true" source="{pass}" trigger="{btLogin}"

triggerEvent="click"/>

 

 

 

<!-- Place non-visual elements (e.g., services, value objects) here -->

</fx:Declarations>

<s:Button id="btLogin" x="225" y="129" label="Login">

<s:click>

<![CDATA[

if(Validator.validateAll(new Array(val1,val2)).length==0)

{

logar();

}else

{

errorMessage.text="Corrija os erros dos campos marcados em Vermelho!!!";

}

]]>

</s:click>

</s:Button>

<s:Label id="errorMessage" x="20" y="130" width="197" color="#F82217" fontWeight="bold"/>

<s:Label x="38" y="40" fontWeight="bold" text="email:"/>

<s:Label x="38" y="76" fontWeight="bold" text="password:"/>

<s:TextInput id="email" x="109" y="31"/>

<s:TextInput id="pass" x="109" y="69" displayAsPassword="true"/>

</s:Panel>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.