Archive for the 'js calls php' Category

20th abr 2009

Utilizando a API do MigreMe por javascript com a JS Calls PHP

Aproveitei um tempo livre nesse feriado emendado para criar uma integração entre a JS Calls PHP e a API do MigreMe: com ela, é possível fazer uma consulta assíncrona no MigreMe passando uma URL e gerando uma outra URL, menor. Para isso, fiz uso da classe PHP para gerar URLs menores com a API do MigreME criada pelo Guilherme Rambo do Screencaster (a única coisa que alterei foi retirar o código que faz a consulta a API do MigreMe do construtor da classe e colocá-lo num método chamado migre).

Inserindo a classe PHP (o terceiro item do array, sendo que o segundo é o caminho da pasta onde está a classe) no arquivo de configuração da JS Calls PHP e mapeando o método migre, usando migreme (o primeiro parâmetro) como apelido a ser usado no javascript:

$jsCallsPhpClasses = array(
array(“migreme”, “lib”, “MigreMe”, array(“migre”))
);

é possível no html fazer uma chamada do tipo:

var url = “http://www.chrisb.com.br”
migreme.migre(url, function(shortUrl) {
var str = shortUrl.item.migre;
alert(str);
});

Aqui pode-se ver um exemplo de teste unitário, funcionando.

O download da JS Calls PHP com essa classe e outras – para consulta de CEPs, CRUD, etc… – e testes unitários pode ser feito aqui. E a documentação completa da mesma pode ser vista na página principal do projeto! Espero que seja de utilidade para vocês :)

*e não se esqueçam de ver a página do Guilherme para saber mais da classe que ele fez e quais são todos os atributos disponíveis assim que a consulta é efetuada – existem várias outras informações!

Posted by Posted by Chris under Filed under javascript, js calls php, php, web 2.0 Comments 5 Comments »

06th mar 2009

CRUD em ajax

Desenvolvendo mais a JS Calls PHP, fiz um exemplo de CRUD (Create, Retrieve, Update, Delete) de um usuário (simples, apenas com nome, e-mail e telefone) onde todas as requisições são assíncronas. O exemplo de uso está aqui.

Disponibilizei um pacote para download, totalmente funcional. Requer uma base de dados MySQL.

São necessárias algumas poucas configurações. Vamos lá:

  • crie um banco de dados no MySQL. No meu caso, chamei-o de jcphp
  • crie uma tabela com a seguinte query:
    CREATE TABLE `jcphp_user` (
    `id` int(11) NOT NULL auto_increment,
    `name` varchar(64) NOT NULL,
    `email` varchar(64) NOT NULL,
    `phone` varchar(16) NOT NULL,
    PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 ;
  • na classe CRUDUtils.php (jscallsphp/lib), que á a classe que faz as requisições ao banco, na linha 10, defina as configurações de conexão com o banco: url, base de dados, usuário e senha. Ficará algo como:
    $this->db = new DBConnect(“localhost”, “jcphp”, “root”, “password”);

Pronto. Você poderá acessar pelo browser o caminho crud/crud.htm e o cadastro/consulta estará funcionando. Deixei o código todo comentado, creio que seja a melhor maneira para ver como funciona.

Posted by Posted by Chris under Filed under javascript, js calls php, php, web 2.0 Comments 3 Comments »

05th mar 2009

Consulta de CEP em ajax

Resolvi juntar duas bibliotecas que fiz (e estão disponibilizadas no site): a de consulta de endereço por CEP e a JS Calls PHP (interação entre javascript e PHP) para criar uma consulta de endereços através do CEP usando requisição assíncrona.

Faça download aqui!

No pacote, há um arquivo cep.htm e a subpasta jscallsphp; não é necessário alterar nada na pasta ou nos arquivos delas, já está configurada pronta para uso.
O cep.htm contém um exemplo de uso (veja funcionando). Só é necessário fazer a chamada aos arquivos da JS Calls PHP. Com isso, no javascript você terá no contexto um objeto chamado  cepLivre que possui o método buscaEndereco(String cep). O CEP deve ser passado no formato XXXXX-XXX.
No exemplo, passei também uma função de callback que trata retorno do método; é retornado um objeto com vários atributos que possuem as informações do endereço. Os atributos são:

  • status – 1 para CEP válido, 0 para inválido
  • tipoLogradouroDesc - descrição do tipo de logradouro (rua, avenida, etc…)
  • logradouro – logradouro
  • bairro – bairro
  • cidade - cidade
  • uf – unidade da Federação (por extenso)
  • ufSigla – unidade da Federação (sigla, por exemplo SP)
  • cep – o próprio CEP

Dúvidas e sugestões, são bem vindos.

[UPDATE] Esqueci de expor que todo esse pacote está disponibilizado sob a licença GPL. Sintam-se livres para baixar, usar e modificar. Obrigado a quem avisou! [/UPDATE]

Posted by Posted by Chris under Filed under javascript, js calls php, php, web 2.0 Comments 17 Comments »

15th fev 2009

Novidades na JS Calls PHP

No começo da semana lancei a JS Calls PHP, uma biblioteca open source para facilitar ajax em aplicações PHP.

Algumas novidades na última versão, a 0.3:

  • página do projeto no Google Code: http://code.google.com/p/jscallsphp/
  • ele está versionado no SVN. Ou seja, a versão em desenvolvimento pode ser acompanhada pela linha de comando svn checkout http://jscallsphp.googlecode.com/svn/trunk/ jscallsphp-read-only
  • não há mais necessidade de utilizar a biblioteca prototype (javascript).  Agora, a biblioteca não tem dependências externas
  • até a versão 0.2, era gerado código javascript para todas as classes PHP. Agora, pode ser modularizado. Como? Você deve habilitar o mod_rewrite no Apache. Com isso, ao invés de fazer a chamada á biblioteca JSCallsPHP.php.js, podem ser feitas várias chamadas, uma para cada classe do PHP, com o caminho interface/{nome da classe}.jsPor exemplo, para chamar duas classes configuradas no config.php, ao invés de fazer assim:
    <script type=”application/javascript” src=”engine.js”></script>
    <script type=”application/javascript” src=”JSCallsPHP.js.php”></script>

    Chamam-se assim:
    <script type=”application/javascript” src=”engine.js”></script>
    <script type=”application/javascript” src=”interface/classe1.js”></script>
    <script type=”application/javascript” src=”interface/classe2.js”></script>

Por enquanto, é isso!

Posted by Posted by Chris under Filed under Tecnologia, javascript, js calls php, web 2.0 Comments No Comments »