03.10.08
Bem, vou mostrar como se usa AJAX com o Zend Framework. O zend framework utiliza um esquema parecido com o Struts, as Actions. Estarei utilizando tambem o mootools para facilitar a criação do objeto “AJAX. Estarei considerando que você já está familarizado com o uso do Zend Framework. Na estrutura da minha aplicação eu tenho um Controller que por sua vez possui diversas actions, e tenho tambem a camada de acesso a dados. A nossa aplicação será um formulário que possui um input box para digitar um cep e ele irá buscar no banco de dados e retornar os dados. Resposta: Um esquema de formulário: HTML:
Javascript:
A função buscaCep pega o cep digitado e monta a QueryString com esse dado e depois cria o objeto AJAX e faz a requisição. O onComplete é a função que será chamada após a requisição ter sido completada. Javascript:
A função completouSolicitação apenas pega o objeto JSON retornado e exibe um alert com as informações. A string montada será essa: "aplicacao/cep/buscaCep?cep=27500200" Como falei antes, o zend possui controladores e actions, nesse caso o cep é o controller e o buscacep é um action que faz parte do mesmo. CepController.php: PHP:
CepDAO PHP:
Página de teste: clique aqui Endereço de trackback para este postTrackback URL (clique direito e copie atalho/localização do link) 8 comentários
Comentário de: Luiz [Visitante]
Olá, Muito bom este seu exemplo, está tudo muito bem explicado parabéns mesmo..
Só uma coisa, não consegui implementar seu exemplo em meu sistema pois você não disponibilizou a classe CepDAO.... Existe alguma maneira de se implementar sem utilizar uma classe para conexão com o banco de dados ?
15.10.08 @ 06:45
Comentário de: mrxrsd [Membro]
Olá Luiz,
Você não precisa implementar a classe de conexão para o banco, poderá fazer isso mesmo na classe de controle, apesar disso não ficar muito adequado com o padrão MVC. Irei alterar o post e disponibilizar a classe CepDAO, porém ela é bem primária, apenas pega um registro de um cep e retorna.
15.10.08 @ 11:48
Comentário de: Luiz [Visitante]
Bom dia mrxrsd,
Estive olhando e realmente não há necessidade de se ter o CepDAO conforme havia mencionado.. Estou ainda aprendendo a manipulação deste componente (ZEND_JSON) tudo está meio obscuro a transação das informações entre o Controller -> Ajax -> PHP. Minha maior dúvida é quanto ao Controller, escrevi a rotina para realizar um Select retornando a informação que me interessa, mas como todo controller tem que ter um arquivo *.phtml tendo como mesmo nome a Action, neste caso não precisa porque ? Como posso testar uma vez que não sei onde está acontendo o erro, pois, ao clicar no botão não acontece nada, nenhum "alert" é jogado em tela... Como saber se a variável ajaxObj está recebendo algo ? Gostaria encaricidamente de pedir sua ajuda para verificar o que estou fazendo de errado... você me ajudaria ? Desculpe se estiver incomodando...OK Muito Obrigado Luiz
16.10.08 @ 05:52
Comentário de: mrxrsd [Membro]
Olá,
Realmente toda action procura uma visão de mesmo nome, por isso temos a linha de comando: $this->_helper->viewRenderer->setNoRender(); Esse comando evita isso de acontecer, mas porque precisa fazer isso? Pois não queremos que ele vá para uma outra página, queremos que ele faça o processamento e retorne os dados para a tela atual. Essa é a idéia do AJAX, realizamos a chamada em "background", ou seja, sem realizar um post da página e depois tratamos o retorno via javascript. Os dados são retornado para a página através do comando: $this->_response->appendBody($objJson); Agora sobre o que está acontecendo no controller, você pode debuggar normalmente como faria com qualquer aplicação sua.
16.10.08 @ 06:18
Comentário de: Paulo Sette [Visitante]
não estou conseguindo configurar! acho q é pq o mootools mudou a versão! alguem pode me ajudar?
04.02.09 @ 09:15
Comentário de: Alexandre [Visitante]
Olá
Estou tentando aplicar seu tutorial no meu sistema, mas inicialmente percebi que o javascript não está reconhecendo a sintaxe: var queryString = {"cep": cep }; tentei dar um alert na var queryString e não deu nada, então mudei a sintaxe para: var queryString = "?cep=" + cep; e aí deu certo o alert, então pensei que a sintaxe de {} e : não estão sendo reconhecidas pelo javascript. baixei o mootools: mootools-1.2.2-core-nc.js renomei-o para mootools.js e coloquei-o no cabeçado da página: src="baseUrl();?>/scripts/jquery/mootools.js" type="text/javascript" Será que estou fazendo alguma coisa errada? Pode me ajudar?
01.07.09 @ 06:55
Esse post tem 1 feedback esperando moderação... Deixe seu comentário |
Hot Topics
|