Programação para a Internet II 2.13. PHP AJAX. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt



Documentos relacionados
PROGRAMAÇÃO PARA INTERNET. Fonte: Raul Paradeda

Ajax Asynchronous JavaScript and Xml

Ajax Asynchronous JavaScript and Xml

Conceitos de Ajax Exemplos de uso do Ajax no braço, muitos exemplos, muito código (HTML, CSS, JavaScript, PHP, XML, JSON)

Desenvolvimento de Aplicações para Internet Aula 11

AJAX é baseado nos seguintes padrões WEB: JavaScript, XML, HTML, CSS.

Lista de Revisão. 3. Analise a afirmativa a seguir como verdadeira ou falsa e justifique.

AJaX Asy s nchronous s J avasc S ript p t a nd d XML

Carregando dados do Banco de Dados MySQL através de uma tag SELECT

Desenvolvimento de Sistemas Web Prof. Leandro Roberto. Aula 18 JavaScript: Eventos MySQL PHP (insert, update e delete)

Primeiro contato com JavaScript

PHP. Hypertext Pre-Processor

7. Formulários em XHTML

AJAX no GASweb. Mas e afinal, para que usamos o AJAX?

Tecnologias para apresentação de dados - Java Script. Aécio Costa

Programação Web com PHP. Prof. Wylliams Barbosa Santos Optativa IV Projetos de Sistemas Web

English Português. By erickalves 25 Julho, :08. Devido à política (#) de segurança. Encontrar Blogs Crie o seu blog de graça Ganhe prêmios

Ajax não é dependente dos servidores Web, e como tal poderá ser usado com PHP, JSP, ASP e ASP.NET.

Tecnologias para Web Design

Desenvolvimento Web XHTML Formulários. Prof. Bruno E. G. Gomes

AJAX. Aula 01 - Introdução

AJAX. Prof. Marcos Alexandruk

Conteúdo. Especificação HTTP v1.1

Programação Web Prof. Wladimir

Desenvolvimento de Aplicações Web. Prof. José Eduardo A. de O. Teixeira / j.edu@vqv.com.br

Programação web Prof. Wladimir

Validação de formulários utilizando Javascript

2.3. PHP Tipos de dados e operadores

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

Prof Evandro Manara Miletto. parte 2

ASP Active Server Pages. ASP (Active Server Pages)

WEBDESIGN. Professor: Paulo Marcos Trentin - paulo@paulotrentin.com.br Escola CDI de Videira

Basicamente iremos precisar de uma base de dados na qual iremos armazenar os registros feitos pelos vistantes: Vamos armazenar os seguintes dados:

Manual de Integração Via Gadget. Passo a passo para realizar a integração entre websites e a plataforma Virtual Target.

Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação. Ajax

Programando em PHP. Conceitos Básicos

INTRODUÇÃO AO DESENVOLVIMENTO WEB

Cálculo Remoto de Preços e Prazos de Encomendas

O que é o JavaScript?

Programação para Internet I. 2. O protocolo HTTP. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt

JavaScript: Validação de Formulários. Prof. Ivanilton Polato

2.9. PHP Cookies e variáveis de sessão

PHP: Formulários e upload de múltiplos arquivos Por Alfred Reinold Baudisch 28 de fevereiro de 2006.

indica o nome do campo pelo qual podemos acessar.

CARREGAR VARIÁVEIS EXTERNAS PARA O FLASH

!" # # # $ %!" " & ' ( 2

Curso De PHP. Aula 4. Formulários. Cookies. Session. Mail

AJAX (Asynchronous Javascript And XML)

Universidade Federal do Espírito Santo CCA UFES. Centro de Ciências Agrárias CCA UFES Departamento de Computação. JavaScript

Mais sobre uso de formulários Site sem Ajax

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Web Design II. PHP mail. Docente: Célio B. Sengo

Vamos criar nosso formulário, vou utilizar aqui como exemplo cinco campos para upload:

Capítulo 4. Programação em ASP

Exercícios Práticos de HTML e JavaScript. <FORM ACTION="mailto:teste@gmail.com" METHOD="POST" ENCTYPE="text/plain" NAME="cadastro">

Edição de Setembro. Validação formulários com PHP. ... revistamensal de programação Open Source

GUIA PHP com MYSQL Autor: Everton Mendes Messias

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem.

6. Introdução à Linguagem PHP

Programação WEB I DOM (Document Object Manager)

Programação para Internet Avançada. 4. Web Services. Nuno Miguel Gil Fonseca

HTML Básico Formulários. Matheus Meira

crudgenerator Passos slimphp/extra/crudgenerator/view/index_view.php A tela abaixo m ostra o p rimeiro passo

JavaScript (Funções, Eventos e Manipulação de Formulários)

Programação para Internet I

cadastro de usuários utilizando Ajax e PHP para inserir os dados em uma tabela MySQL.

FORMULÁRIOS HTML (FORMS) E ENTRADAS DE DADOS (INPUT)

AJAX Asynchronous JavaSctipt And XML. Nuno Dantas, de Novembro de 2006

CAPITULO 5 COMANDO DE FLUXO IF

Programação Web Prof. Wladimir

O que é o Javascript?

PROGRAMAÇÃO WEB DO LADO DO CLIENTE

PHP é um acrónimo para Hypertext Preprocessor.

IFSC-Programação para a WEB - prof. Herval Daminelli

J820. Testes de interface Web com. HttpUnit. argonavis.com.br. Helder da Rocha

Introdução ao javascript ver material de apoio em downloads e também-referência livro javascript manzano.

Programação para Internet I. 8. JavaScript. Nuno Miguel Gil Fonseca

Programação Web Prof. Wladimir

<?php include("conn.php");

Introdução ao PHP. Prof. Késsia Marchi

Associação Carioca de Ensino Superior Centro Universitário Carioca

PROF. DANIELA PIRES. Aplicações para Web. Aplicações para Web - FMU Prof. Daniela Pires

Fundamentos de Ajax e o Modelo DOM

Formulário (Send & Recieve) Prof. Celso H. Masotti

Criação de páginas web

O código acima descreve o formulário com uma caixa de texto e dois botões

Linguagem de Programação III Aula 2 - Apresentação da Disciplina

Scriptlets e Formulários

Web Browser como o processo cliente. Servidor web com páginas estáticas Vs. Aplicações dinâmicas para a Web:

Programação para Internet

Conteúdo Dinâmico. Introdução. Interação Browser x Servidor Web. Interação Browser x Servidor Web

Conteúdo. DHTML tópicos Hamilton Lima

Criando e consumindo Web service REST com PHP e JSON. Palestrante: Weiberlan Garcia

Prof. Roberto Desenvolvimento Web Avançado

Programação para Internet I 9. HTML5. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt

Transcrição:

Programação para a Internet II 2.13. PHP AJAX Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt

Ajax não é uma tecnologia! É um conceito! Consiste no uso do objecto XMLHttpRequest que se encontra implementado nos browsers. Consiste em poder fazer chamadas de servidor através de JavaScript. É extremamente útil quando se pretende carregar apenas partes de uma página, validar formulários sem abandonar a página, etc. Envolve sempre a programação do lado do cliente (JavaScript) e do lado do servidor (PHP, por exemplo). (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II 2

Exemplo cliente (JavaScript) No lado do cliente, começa-se por criar uma instância do objecto XMLHttpRequest (http). O seguinte pedaço de código, garante compatibilidade entre a maior parte dos browsers. var http = false; if (window.xmlhttprequest) { http = new window.xmlhttprequest; else { try { http = new ActiveXObject("MSXML2.XMLHTTP.3.0"); catch(ex) { http = false; if (!http && typeof XMLHttpRequest!= 'undefined') { http = new XMLHttpRequest(); //For Mozilla, Opera Browsers (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II 3

Exemplo cliente (JavaScript) (pedido via GET) Deverá prosseguir-se com a criação da função que irá tratar o pedido ao servidor. Caso se pretender fazer o pedido via GET, é necessário criar a string de pedido (endereço + parâmetros e valores ) E indica-se o nome da função que irá tratar a resposta do servidor (handletextgetresponse) function gettextrequest() { // inserir aqui o código específico var nome = document.getelementbyid("nome").value; var url = "get_txt.php?nome="; http.open("get", url + encodeuricomponent(nome), true); // -- http.onreadystatechange = handletextgetresponse; http.send(null); (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II 4

Exemplo cliente (JavaScript) (pedido via POST) Deverá prosseguir-se com a criação da função que irá tratar o pedido ao servidor. Caso se pretender fazer o pedido via POST, é necessário criar a string de parâmetros e valores. Os parâmetros e respectivos valores não serão enviados no endereço como acontece com pedidos via GET. E indica-se o nome da função que irá tratar a resposta do servidor (handletextpostresponse) (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II 5

Exemplo cliente (JavaScript) (pedido via POST) (cont.) function textpostrequest(obj) { // inserir aqui o código específico var url = 'post_txt.php'; var poststr = "nome=" + encodeuri(document.getelementbyid("nome").value ); // -- if (http.overridemimetype) http.overridemimetype('text/xml'); http.open('post', url, true); http.setrequestheader("content-type", "application/x-www-form-urlencoded"); http.setrequestheader("content-length", poststr.length); http.setrequestheader("connection", "close"); http.onreadystatechange = handletextpostresponse; http.send(poststr); (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II 6

Exemplo cliente Prossegue-se com a criação da função que irá tratar a resposta do servidor Aqui dependerá muito da situação particular e do que se pretender fazer com a resposta, mas geralmente o tratamento da resposta consiste em colocar valores em caixas de formulário através da propriedade value, ou em outros elementos de HTML (div, td, span, p, etc.) através da propriedade innerhtml. (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II 7

Exemplo cliente (cont.) function handletextgetresponse() { if(http.readystate==4){ if(http.status==200){ var result = http.responsetext; // inserir aqui o código específico if (result=='error') document.getelementbyid('result').innerhtml = "Preencha o formulário"; else{ document.getelementbyid('nom').value = result; document.getelementbyid('result').innerhtml =""; // -- (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II 8

Exemplo cliente Para tudo funcionar, é necessário existir algo chamar a função que faz o pedido ao servidor. Esse pedido é geralmente feito através de reposta a eventos (onclick, onchange, etc.)... </head> <body> <form name="exemplo" method="post"> nome:<input type="text" size="10" name="nome" id="nome" /> <input type="text" size="20" name="nom" id="nom" /> <input type="button" value="go" onclick="javascript:gettextrequest();"/> <span name="result" id="result"></span> </form> </body> </html> (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II 9

Exemplo servidor (PHP) Para terminar, falta fazer o código do lado do servidor (neste caso, o servidor é implementado em PHP, mas poderia ser usada outra qualquer linguagem). Tratamentos de pedidos via GET <?php if (strlen($_get['nome'])>0) print($_get['nome']. " é um nome bonito "); else print("erro");?> Tratamentos de pedidos via POST <?php if (strlen($_post['nome'])>0) print($_post['nome']. " é um nome bonito "); else print("erro");?> Convém referir que a resposta do servidor deverá ser feita sempre através de echo ou print. (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II 10

Conclusão Convém referir que ainda não se viu onde entra o X de XML em AJAX. O X de Ajax reporta-se ao facto de a resposta do servidor dever ir na forma de XML, no entanto, por uma questão de facilidade tal poderá não ocorrer Caso a resposta fosse enviada na forma de XML, seria necessário adaptar a função de tratamento da resposta no cliente a este facto. Exemplo de resposta em XML: <?php if (strlen($_get['nome'])>0){ header('content-type: text/xml'); echo "<?xml version=\"1.0\" standalone=\"yes\"><pessoa><nome>". $_GET['nome'])>."</nome></pessoa>"; else{ print("erro");?> (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II 11