+3

Programando com Prototype (JavaScript) e PHP

criado por Marcio Muzi em 22/12/2006 8:55am
Finalmente a página de busca:



Figura 1.3 Página de busca. Um script comum em PHP, que devolve o resultado do banco de dados.

Essa página não tem segredo. Ela foi construída em PHP e por funcionar de forma independente pode ser reescrita em qualquer outra linguagem.

Na linha 2 é instanciada a classe mysqli, que estabelece a conexão com o MySQL. A linha 7 recupera o parâmetro enviado pela Ajax.Resquest (linha 5 do arquivo request.js).
Nas linhas 14 a 17 o script varre o resultado da consulta imprimindo os dados no formatado HTML que serão exibidos no div “divResultado” da página index.html. Caso nenhum registro seja resultado, retornará a mensagem da linha 20.

O objetivo da requisição com HttpResquest é que o tráfego das informações ocorra em background, sem que o usuário precise esperar a página inteira ir com a requisição e depois voltar com a resposta, como acontece na navegação clássica.

Para fins didáticos, não utilizei orientação a objetos com arquitetura em camadas, mas recomendo que você construa seus aplicativos com base na arquitetura MVC: separação da lógica de banco (persistência), negócio, controle e visualização. Para quem desenvolve em PHP, recomendo para a camada de visualização o uso do template Smarty (http://smarty.php.net).

Você pode baixar o código-fonte completo deste artigo, incluindo o prototype.js, clicando aqui. Ao descompactar o arquivo, procure no diretório sql o script para a criação do banco de dados usado neste artigo.

Espero que você tenha um bom proveito da biblioteca Protrotype. É uma biblioteca segura e amplamente usada e certamente ela vai agilizar seu desenvolvimento em Javascript. Estou à disposição para esclarecer qualquer dúvida ou sugestão. Não deixe de comentar este artigo.

Comentários:

Mostrando 1 - 10 de 15 comentários
Marcio Muzi disse:
Neto, talvez resolva colocando sua string que está retornando da requisição dentro da função utf8_decode()

Para saber mais, veja os exemplos no manual do PHP:
http://br.php.net/manual/pt_BR/function.utf8-decode.php

[]s
01/03/2007 2:46pm (~17 anos atrás)

josé M. Neto disse:
É isso mesmo Marcio Muzi!
Só que na hora de enviar pelo form.php eu não consigo fazer com que
<?header("Content-type: application/xml; charset=iso-8859-1");?> que coloquei como a primeria linha da página funcione, ele envia para a página em php que faz o processamento e que também coloquei o header e nesta funcionou. Exemplo no form digito Brasília e ele envia brasília para a página em php que faz o processamento. E se eu no form.php digito Brasilia, sem o acento, aí ele manda para o php que faz o processamento e retorna somente os resultados que também não tem acentos no caso Brasilia sem acento.
01/03/2007 11:41am (~17 anos atrás)

Marcio Muzi disse:
Neto, faltou na página de busca a linha abaixo:

header("Content-type: application/xml; charset=iso-8859-1");

A forma correta de renderizar nosso português é simplesmente usando o charset ISO-8859-1 e não o UTF-8. Você deve enviar cabeçalhos do servidor para o navegador, informando que você usará ISO-8859-1.

[]s
Marcio
www.marciomuzi.eti.br
01/03/2007 6:43am (~17 anos atrás)

josé M. Neto disse:
Gostaria primeiro de parabenizar pelo artigo.
Implemetei com uma página com o form e outra com o php mas sem DB. só que o retorna o código no browser IE vem com problema nos caracteres acentuação exemplo Brasília retorna Bras?a. Como resolver ? Sereia no Prototype
01/03/2007 5:51am (~17 anos atrás)

Parabéns pelo artigo!
21/02/2007 7:46pm (~17 anos atrás)

Leandro Lages disse:
você sabe como esta biblioteca se comporta ao usar UPLOAD de arquivos em Ajax? Tem suporte?
05/02/2007 7:07am (~17 anos atrás)

Marcio Muzi disse:
Olá nelsOn, obrigado pelo elegio.

O código fonte está disponível no iMasters:
http://conteudo.imasters.com.br/5231/scripts_artigo_marciomuzi.rar

Sobre o navegar estar configurado para não aceitar Javascript, além de ser raro, o usuário simplesmente não vai conseguir fazer nada na internet se fizer isso.
Quer um exemplo? Imagine um infeliz que não habilita o javascript no navegador, nem o GMail vai consegue utilizar!

Abraços
04/02/2007 9:55am (~17 anos atrás)

Sinceramente, o melhor tutorial que eu li aqui na phpbrasil.

Muito boa as ilustrações. Não forneceu o código, ou seja quem quiser ter o código terá que digitar letra por letra(aquela coisa de ctrl+c ctrl+v não é bom).
Uma coisa é que no caso, se o navegador não suportar JS, não vai acontecer nada (o que é muito ruim).

Porém parabéns. Espero que coloque mais artigos/tutoriais nesse estilo. :-)
03/02/2007 8:01am (~17 anos atrás)

Muito bom, parabéns pelo artigo.
11/01/2007 9:36am (~17 anos atrás)

Marcio Muzi disse:
Cau,

Quando li sobre o conceito do JS não obstrutivo em alguns lugares na internet, dizia que era apenas não ter JS no código HTML.
Pelo visto as pessoas não conhecem bem esse conceito. Se você tiver alguma referência confiável sobre esse assunto, pode enviar para meu e-mail? (marcio.muzzi@gmail.com)

Obrigado pela contribuição!

Abraços,
Marcio
10/01/2007 10:37am (~17 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)