Publicidade   
 você está aqui: phpbrasil.com    artigos    artigo  
 
:: novos artigos ::

:: recomendado ::

PHP para a World Wide Web

Compre esse livro no Submarino.com.br

:: publicidade ::


:: novos scripts ::

:: elenco phpbrasil ::

Juan Roldán Esse usuário pertence aos 50 usuários mais ativos do site
Pontos: 4687

Visite a página de perfil de Bruno Kühnen MeneguelloUsando XMLHttpRequest
por Bruno Kühnen Meneguello
Lista de Categorias  |  Contribua um Novo Artigo  |  Entre em Contato Conosco

Com o objeto XMLHttpRequest do JavaScript e uma página PHP com acesso a banco de dados, é possível criar uma página realmente interativa, que se atualize de maneira totalmente automática e mais importante sem a necessidade de dar reload na página. O XMLHttpRequest lhe permite checar se um número serial é correto enquanto o seu usuário ainda está no formulário, por exemplo.
Vote aqui!
Média de Votos Atual: 7.96
Total de Votos: 49
Nota:   

O objeto XMLHttpRequest permite a comunicação assíncrona de um script (JavaScript) com qualquer página web. Ele, em síntese, faz uma requisição HTTP sem ter que iniciar uma nova janela ou recarregar os dados da janela atual.

Este objeto implementa os métodos save e load do modelo DOM. Com ele, portanto, é possível enviar e receber variáveis (ou mesmo textos inteiros) entre páginas, sem que todo o conteúdo desta tenha que ser recarregado. Para usálo adequadamente, é necessário algum conhecimento em DOM e JavaScript. De DOM, pelo menos o createElement(), createTextNode(), getElementById e o atributo innerHTML.

Como eu já disse, o XMLHttpRequest é um objeto. Mas no IE, este objeto é um ActiveX, no Mozilla e no Safari, ele é um objeto nativo. Então a chamada para ele é diferente nestes navegadores. Sendo assim:

Chamada no IE:

var req = new ActiveXObject("Microsoft.XMLHTTP");


Chamada no Mozilla/Safari:

var req = new XMLHttpRequest();


Os métodos deste objetos são:

abort():
Pára a requisição atual.

getAllResponseHeaders():
Retorna todos os cabeçalhos (labels e valores) como uma string.

getResponseHeader("headerLabel"):
Retorna o valor de um único label do cabeçalho.

open("metodo", "URL"[, asyncFlag[, "userName"[, "password"]]]):
Define a página a ser aberta, o método (GET | POST), a URL, o marcador de "assíncrono", e, se a página requerer login, o nome de usuário e a senha.

send(content):
Envia a requisição, opcionalmente pode ser uma string ou até um objeto DOM.

setRequestHeader("label", "valor"):
Define um par label + valor para ser enviado com o cabeçalho da requisição atual.

E as propriedades:

onreadystatechange:
(!) Método a ser invocado quando o estado (definido em readyState) mudar. (!)

readyState:
Inteiro representando o estado da requisição:
0 = não inicializado
1 = carregando
2 = carregado
3 = modo interativo
4 = completado

responseText:
Versão em string dos dados retornados pela requisição.

responseXML:
Objeto DOM retornado pela requisição

status:
Código numérico do estado da requisição retornado pelo servidor. O conhecido 404 "Not Found" e o menos conhecido, mas mais importante 200 "Ok"

statusText:
A string que acompanha o código de estado acima ("Not Found", "Ok", etc)




<< Anterior 1 2 Próxima >>

 
Imprimir  |  Enviar para um Amigo


Comentários de Usuários

Duvida
publicado por Leandro Maniezo Esse usuário pertence aos 50 usuários mais ativos do site - 2005-05-17 13:08:27

Legal artigo! Mas o meu não ta funcionando... vc tem algum endereço rodando isso pra dar uma olhada como fica???
Grato
Leandro Maniezo

Auto - Save
publicado por Guilherme - 2005-05-17 15:58:53

Muito interessante o artigo, apesar do exemplo nao ter funcionado. Estava justamente lendo sobre esse objeto XMLHTTP.

Estou tentando fazer um tipo AUTO SAVE. O colunista vai escrevendo sua materia no TEXTAREA e o XMLHTTP vai enviando pro servidor para ir salvando no BD.
Alguem tem alguma ideia de como fazer isso?

Abracos.

XP sux!
publicado por Gabriel Abner Coppini - 2005-05-17 16:08:32

O problema é que no Window$ XP(ie6 + SP2) o código é bloqueado como "script malicoso"....

[]'s

sp2
publicado por Guilherme - 2005-05-17 16:53:08

Bem, mas estou sem o SP2.

Eu sei que o GMAIL usa e muito essa 'tecnologia'.

Problemas no exemplo do artigo
publicado por Diego M. Medeiros de Araújo - 2005-05-18 08:24:01

Existem alguns ajustes a serem feitos para que o exemplo funcione...

Na linha do script.js:
function buscarNoticias(obj)
deve-se colocar:
function buscarNoticias()

já que obj não é utilizado.

Na linha do script.js:
setInterval("Teste()", 60000);
deve-se colocar:
setInterval("buscarNoticias()", 60000);

Além de não esquecer de realizar a conexão corretamente ao banco de dados e não esquecer de selecionar uma base de dados!

Excelente!
publicado por Matheus Belli - 2005-05-18 09:46:52

Excelente artigo , muito útil e de extrema importância.
Há muito tempo pesquiso sobre esse assunto mas não estava obtendo sucesso...mas agora este artigo abriu uma gama de possibilidades para meus projetos PHP+MySQL+Javascript...

intervalo
publicado por Guilherme - 2005-05-18 12:45:42

No script PHP fiz um print rand(), porem a chamada a cada tempo de intervalo nao esta funcionando. O JS soh esta chamando uma vez o PHP.

E alguem sabe como fazer o processo contrario? Quero ficar enviando o conteudo de um textarea a cada X segundos para o servidor.

Funciona !!!
publicado por Rodrigo Romano Moreira Esse usuário pertence aos 10 usuários mais ativos do site - 2005-05-18 13:37:37

Funciona , vou colocar isso no meu chat.

Servidor
publicado por Julio Cesar Marques - 2005-05-18 15:51:57

com um setInterval() destes o servidor vai ficar louco!!! principalmente se chamar acesso a BD e ta... inda mais cada 6 ms.

Parabéns
publicado por sbc.mfreitas - 2005-05-18 16:11:42

Cara , era isso que eu precisava , util e diversas funcionalidades , já estou mudando boa parte dos meus sistemas...valeu

Comigo funcionou, mas tenho estas duvidas
publicado por pierrefreire - 2005-05-18 16:24:25

Olá amigos,

Eu achei bastante interessante e efetuei alguns testes aqui, para simplificar tirei a parte de banco de dados e coloquei um conteudo fixo. Funcionou perfeitamente porem com as seguintes ressalvas.
Eu deixei atualizando constantemente ou seja caso eu inclua alguma noticia no news.php ela deve aparece imediatamente.
No mozilla funcionou perfeito, porem no IE nao é atualizado.
Alguem poderia me ajudar?

Vou colocar o conteudo dos arquivos aqui, lembrando que tirei o acesso ao MYSQL, o exemplo é com o conteudo fixo do arquivo news.php, eu queria apenas ver o funcionamento. O detalhe é que na tela aparece o refresh de apenas parte da tela como é o objetivo do artigo. Baixei o tempo de atualização.
Ai vai os arquivos:


*** ARQUIVO index.html ***

<html>
<script language="javascript" type="text/javascript" src="script.js">
</script>
<h1> PAGINA ATUALIZADA SEM REFRESH </H1>
<hr><br>
<div id="news"></div>
</html>

*** ARQUIVO news.php ***

<?php
echo "<h1>"."16:00"." - "."PHP é a linguagem mais usada na net em 2004"."</h1>";
echo "<h1>"."17:00"." - "."PHP5 tem suporte a orientacao a objetos"."</h1>";

?>

*** ARQUIVO script.js ***

var req;
function loadXMLDoc(url)
{
req = null;
// Procura por um objeto nativo (Mozilla/Safari)
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
req.onreadystatechange = processReqChange;
req.open("GET", url, true);
req.send(null);
// Procura por uma versão ActiveX (IE)
}
else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req) {
req.onreadystatechange = processReqChange;
req.open("GET", url, true);
req.send();
}
}
}

function processReqChange()
{
// apenas quando o estado for "completado"
if (req.readyState == 4) {
// apenas se o servidor retornar "OK"
if (req.status == 200) {
// procura pela div id="news" e insere o conteudo
// retornado nela, como texto HTML
document.getElementById('news').innerHTML = req.responseText;
} else {
alert("Houve um problema ao obter os dados:\n" + req.statusText);
}
}
}

function buscarNoticias()
{
loadXMLDoc("./news.php");
}

// Recarrega a cada 60000 milissegundo (60 segundos)
setInterval("buscarNoticias()", 600);





Re:
publicado por Leandro Maniezo Esse usuário pertence aos 50 usuários mais ativos do site - 2005-05-19 07:57:00

Valeu Diego agora o meu funcionou tmb!!! Então pierrefreire acredito que esta acontecendo isso por causa do cache!!
Coloque isso no seu arquivo news.php:

$now = gmdate('D, d M Y H:i:s') . ' GMT';
header('Expires: ' . $now);
header('Last-Modified: ' . $now);
header('Cache-Control: no-store, no-cache, must-revalidate'); // HTTP/1.1
header('Cache-Control: pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
header('Pragma: no-cache'); // HTTP/1.0

Valeu Leandro
publicado por pierrefreire - 2005-05-19 08:16:00

Valeu Leandro,

Era o cache mesmo, agora ficou perfeito.

Dúvida de Recorregamento
publicado por Felipe Cardoso Martins - 2005-05-19 12:54:41

Ex. estou fazendo um forum para mim com varias coisas da minha necessidade , coloquei dentroi de um iframe para nao carregar toda a pagina e somente o iframe , se eu colocar o

setInterval("Teste()", 60000);

dentro na minha pagina ela vai recarregar a cada 60 segundos , ou eu tenho que fazer algo diferente .

vlw

Dúvida de Recorregamento
publicado por Felipe Cardoso Martins - 2005-05-19 12:56:59

Esqueci no comentário acima, já pensei em fazer como um bate papo onde somente atualiza quando tiver uma nova mensagem ,só que não tenho a minima ideia de como faço isso, se alguem poder me sugerir algo fico agradecido.

Parabéns pelo artigo
publicado por Mauricio Feller Mateus - 2005-05-19 15:39:29

O uso desse objeto caiu do céu para mim! Estava criando uma rotina para funcionar como "sonda" do Itaushopline em PHP (para conferir se a pessoa já pagou ou não) e estava precisando exatamente disto para funcionar.
Fiz algumas alterações, juntei com uma parser XML, e voilá!!
Depois vou colocar nos scripts as rotinas para acessar o Itaushopline por PHP.

Valeu mesmo!

AJAX - Ajax => Assynchronous Javascript And Xml
publicado por Felipe Nascimento - 2005-05-22 13:59:15

Veja esse tópico do Guilherme Blanco:
http://forum.wmonline.com.br/index.php?showtopic=116526

MÁGICA!!
publicado por Vanessa Schissato Esse usuário pertence aos 50 usuários mais ativos do site - 2005-05-25 15:47:58

MEU DEUS!! EH MAGICA!!!
funfo certinho fazenu as alterações q o Diego M. Medeiros de Araújo !!

ja vejo um monte de possibilidades...
nossa...
muita coincidencia...tava procuranu uma coisa assim justo no dia q vi o artigo por acaso!!!

parabens pelo artigo!!
;)

Caraca, véi!! Que doidêra!
publicado por Isaque - 2005-05-28 10:40:43

Aê, tá massa essa idéia!
Vai tornar mais fácil a vida da gente. (ufa!!)
Caraca!! Ainda tô embasbacado!!
Esse negócio é demais pra minha cabeça de iniciante!!


Muito bom, muito bom...
publicado por André Taiar Marinho Oliveira - 2005-05-29 11:46:39

Muito bom!
Precisava de um exemplo simplificado sobre isso!

Tô gostando de ver a evolução dos programadores aqui do PHPBrasil...

Cada vez + ...

Uma observação:
publicado por André Taiar Marinho Oliveira - 2005-05-29 12:32:10

Tipo assim,

quando tentei testar no IEcat, me parece que ele ficava lendo o arquivo que estava em BUFF ou seja, eu tinha q apagar o temporary internet files para que a página fosse corretamente atualizada.

O mesmo problema não aconteceu no Firefox, aonde a página foi atualizada normalmente e listada no intervalo certo de tempo.

Funciona PERFEITAMENTE XD~~.

cool
publicado por Olavo Alexandrino Esse usuário pertence aos 50 usuários mais ativos do site - 2005-06-02 23:09:38

legal cara!

já tinha usado um modo semelhante, mas só rolava no IE, usava o evento "ondatasetcomplete" e tratava o XML como um objeto RecordSet.

Parabens!

;)


TOP D+++
publicado por vitorpf - 2005-06-13 09:24:39

Realmente as possibilidades de utilização desse script são muito amplas, e realmente funcionais, dão ao site uma cara mais profissional, huahuau
Só fiquei curioso do trein ai de naum funcionar no Ruindows XP SP2 :s
Eu ainda nem testei ele, mas sei que é um item muito muito muito útil.

Parabéns pelo artigo!

Plataforma ?
publicado por Ricardo Aragão - 2005-06-13 13:41:50

Muito legal esse esquema. Gostaria de saber se tem algum objeto similar para linux, já que isso é ActiveX, que é da MS.

Parabéns

Post Atrazado...
publicado por Bruno Kühnen Meneguello - 2005-06-14 08:08:52

Obrigado a todos que gostaram do artigo.
Sinto muito pelo mal funcionamento do exemplo, mas eu escrevi meio correndo...
Obrigado aos que detectaram os problemas e encontraram as soluções.
Para solucionar algumas dúvidas que surgiram:
- Não funcionou so IE SP2:
Pois é. O SP2 veio para (na minha opinião) estragar o que estava bom no WinXP. Ele aumenta muito a segurança do IE, mas em compensação, fecha com muitas possibilidades. Como eu não uso SP2, não tive problemas com isso, mas para quem usa, creio que baixar o nível de segurança do IE deva resolver.

- "Com um setInterval() desses o servidor vai ficar louco!":
O setInterval está definido a cada 6*10000ms (60s).

- "Existe uma possibilidade para linux, já que isto é ActiveX?":
Há duas maneiras de chamar o XMLHttpRequest, uma (para IE) é via ActiveX, mas a outra (para Firefox e Safari) é via objeto nativo. Então, se você usa Firefox no seu Linux, ele usa a chamada "new XMLHttpRequest()".

Valeu!

Parabens
publicado por Guilherme L. Stolfo - 2005-06-16 20:45:58

E questao de carregamento de servidor?, ele se comprar a um metarefresh do html? .

Fico no aguardo e parabens mesmo pelo artigo.

muito bom
publicado por gocorrea - 2005-06-17 07:48:06

Muito bom o artigo. Eu testei e funcionou muito bem no winxp sp2. Eu utilizei para atualização de um gráfico, o que exige muito do servidor (linux). O mais interessante é que quando uso o gráfico não funciona remotamente no firefox do linux, somente no ie e firefox do windows (mas funciona no servidor linux). E se eu fizer uma cusulta a um banco de dados remoto nem abre a página... (inclusive no próprio servidor)

Firefox
publicado por Abelmon Bastos - 2005-06-17 17:31:57

gocorrea, tente atualizar o Firefox para a versão mais nova - no linux. Se não funcionar, o problema deve ser com o próprio código msm, pois deve estar padronizado segundo normas(formalização DOM) da www.w3c.org que já são implementadas nos melhores browsers(como o Firefox, claro!)

re: Firefox
publicado por gocorrea - 2005-06-22 19:29:44

Eu utilizo debian em casa e no meu servidor, de forma que as versões do firefox em cada um deles é a mesma e a mais nova. O codigo funciona muito bem no firefox do meu servidor, na minha rede interna e em qualquer pc com conexão de até uns 512kbps. Na minha casa que é 256 kbps não funciona no firefox, só no i.e. Se eu fazer com que o gráfico gerado seja um pouco mais pesado ele nem passa mais a abrir no i.e. Desta forma eu acho que o objeto XMLHttepRequest é mais "potente" no i.e. (eu também prefiro o firefox, mas fazer o que?) e esta relacionado com a velocidade da conexão e o tamanho da página. Mesmo assim, obrigado.

Sajax - Bem mais facil
publicado por Marcello R. Gonçalves - 2005-06-30 09:55:55

Sajax é uma ferramenta para programar websites usando a AJAX framework — mais conhecido como XMLHTTPRequest ou programação remota — o mais fácil possível. Sajax facilita a chamada à funções de APS, Cold Fusion, Io, Lua, Perl, PHP, Python ou Ruby da sua página via JavaScript sem que seu navegador de um refresh. Esta ferramenta faz 99% do trabalho para você então não tem desculpas para não usar!
http://www.modernmethod.com/sajax/

Tutorial que postei
Calculadora em Sajax - comentado
http://www.babooforum.com.br/idealbb/view.asp?topicID=361684

Dar foco a janela...
publicado por Leandro Del Busso Domingues - 2005-07-20 16:54:22

Alguém sabe se tem como usar essa rotina para dar foco em um janela. Ex: Tenho uma lista de recados enviados pelo sistema, e cada vez que o numero de recados aumentar, mandar o foco para a janela do usuário...

tentei usar javascript no arquivo que busca no banco mas não deu certo...

Alguém tem alguma sugestão???

Como acrescentar javascripts?
publicado por Mauro Barão - 2005-08-12 16:58:16

O script realmente é muito bom. Porém como fazer para executar javascripts dentro da página em PHP??? Por exemplo: if tal coisa = alert, else tal outra = pop up ?

Re: Como acrescentar javascripts?
publicado por Vanessa Schissato Esse usuário pertence aos 50 usuários mais ativos do site - 2005-08-23 11:25:27

MauroSp, naum entendi bem sua dúvida, mas não seria simplesmente:

<?php

//script php

?>
<script language="javascript">
alert('exemplo');
</script>
<?php

//continuação php
?>



?????????????

mais uma div
publicado por canibal - 2005-08-25 20:18:29

Quando o pierrefreire diz:
" // procura pela div id="news" e insere o conteudo "
Seria possível criar uma outra div id="news1"
no arquivo script.js ,que seria chamada assim <div id="news1"></div>, no arquivo index.html?
Olha, eu bem que tentei mas naum consegui.
Agradeço alguma ajuda.
Até lá ...

Pq a pesquisa retorna com caracteres distorcidos?
publicado por Juliano Andre - 2005-08-28 20:39:15

Colegas

Estou com problemas, o script funcionou Blz, mas os valores retornados da pesquisa vem com os caracteres distorcidos, os caracteres em lingua portuguesa, como:
Ǻª e todos aqueles acentuados.
Tem como resolver isso?
Agradeço desde já

pt-br
publicado por canibalb - 2005-08-29 16:20:32

Voce deve colocar esta declaração de DocType na pagina.html " <!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt-br" lang="pt-br"> "

E este no arquivo .php
" header("Content-Type: text/html; charset=iso-8859-1"); "

Agora deve funcionar em Portugues-Br.
Abraços.

Campo de texto
publicado por Mário Sérgio da silveira - 2005-09-21 07:24:21

Bom... esse script realmente apareceu na hora certa para mim... porêm seria possível mostrar o resultado dentro de um campo de texto (textfield)para ser reenviado para o banco de dados... se alguém tiver a solução... desde já agradeço pelos esclarecimentos.

Problemas e dúvidas...
publicado por Tiago Beviláqua de Castro - 2005-09-24 11:13:42

Entao..
um dos problemas q estou tendo.. eh com os acentos.... mas vou testar com a soluçao do canibalb...
fora esse.. tenho dois problemas...
tenho uma pagina cadastro.php
q ao digitar o cpf no campo cpf.. busca pela pagina checa_cpf.php ... q se encontrar no banco de dados o cpf.. lista os campos preenchidos... para editar...
e se nao encontrar, lista os campos em branco.. pronto para ser inserido no DB...
nao vejo como... pois o xmlhttprequest nao joga os campos na pagina.. puxa o codigo-fonte q vc verah q nao estah lah... lah soh tem a <div id=campos></div>...
esse eh um...

agora outro..
como eu faria para puxar os dados de um arquivo... q jogar em mais de uma div?
tipo.. pensando na mesma finalidade do problema 1..
eu preencheria o cpf.. dae se ele encontrar o no DB, joga cada campo em uma div diferente...

tentei achar um modo.. mas nao conheço todas as possibilidades do xmlhttprequest....

ah! existe algo equivalente ou parecido a xmlhttprequest???

vlw galera...
flw!

Problemas e dúvidas
publicado por Tiago Beviláqua de Castro - 2005-09-24 11:18:30

putz.. acho q nao fui mto claro.. na minha duvida..
eh q como farei o codigo de UPDATE ou INSERT no DB se os campos nao estariam na pagina..
se eu jogar campos dentro de uma div q tah dentro das tags <form> </form>.. eles seriam jogados para as variaveis $_POST["nome_do_campo_inserido_dinamicamente"]???
agradeço mto se alguem me der uma luz... :-p
flw!

Re: Problemas e dúvidas
publicado por Tiago Beviláqua de Castro - 2005-09-25 13:01:10

alguem??

Resolvi umas coisas
publicado por Tiago Beviláqua de Castro - 2005-09-27 08:36:42

Primeiro..
Resolveu meu problema de acentos a solucao do canibalb...
Sobre a duvida se os campos inseridos via xmlhttprequest.. eu testei e vi q sim.. sem problemas...
E sobre jogar os campos em divs separadas.. acho q eh inviável..
vlw.. obrigado

Carregando...
publicado por Tiago Beviláqua de Castro - 2005-09-27 08:51:55

Entao..
queria montar uma mensagem de "Carregando..." enquanto ele nao chegar no status OK...
como eu faria no codigo abaixo?

function estado()
{
// apenas quando o estado for "completado"
if (req.readyState == 4) {
// apenas se o servidor retornar "OK"
if (req.status == 200) {
// procura pela div id="atualiza" e insere o conteudo
// retornado nela, como texto HTML
document.getElementById('estado').innerHTML = req.responseText;
} else {
alert("Houve um problema ao obter os dados:\n" + req.statusText);
}
}
}

Nao sei como fazer para inserir um texto ao inves da pagina.. definida na function loadXMLDoc() que vem acimda dessa... estado()

Alguem sabe?

Carregando...
publicado por Tiago Beviláqua de Castro - 2005-09-27 09:59:51

opa.. descobri..
antes do:
if (req.readyState == 4) {

coloquei o seguinte
if (req.readyState != 4) {
document.getElementById('dadoscep').innerHTML = "<h3>Carregando...</h3>";
}
else

como fazer upload
publicado por augustowebd - 2005-10-04 19:58:47

gostaria de saber como fazer upload utilizando XMLHttpRequest?
Valeu!

Apenas 1 vez
publicado por Carlos Alan - 2005-10-07 00:46:15

Poxa.. ele só mostra os primeiros 5 resultados e depois não mostra mais nada.. olha como ta o meu news.php

<?

$now = gmdate('D, d M Y H:i:s') . ' GMT';
header('Expires: ' . $now);
header('Last-Modified: ' . $now);
header('Cache-Control: no-store, no-cache, must-revalidate'); // HTTP/1.1
header('Cache-Control: pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
header('Pragma: no-cache'); // HTTP/1.0
header("Content-Type: text/html; charset=iso-8859-1");

mysql_select_db("z_news") or die ("<b><font face=Verdana size=1>Não foi possível selecionar o Banco de Dados.<BR> <font color=red>Erro:</font> " .mysql_error(). "</b>");

$sql = "SELECT `noticia` FROM new ORDER BY RAND() LIMIT 1";
$query = mysql_query($sql);
while ($res = mysql_fetch_array($query,MYSQL_ASSOC)) {

echo "<h1>".$res['noticia']."</h1>";

}

?>

ja fiz de tudo pra ele carregar com outros resultados mais nao vai =\

Apenas 1 vez
publicado por Carlos Alan - 2005-10-07 00:56:11

só foi pq usei RAND() c nao fosse isso ele tava travando

Evitando erros de header
publicado por José Augusto Ferreira Franco - 2005-10-21 09:01:32

Olá pessoal aquí é o Guto

Ninguém falou no assunto, mas ao testar o código acima obtive uma série de erros devido tipo "cannot sent headers- headers already sent at line xxxx"

Aqui está o código a functionar correctamente e sem erros:

<?php
ob_start();

?>
<html>
<script language="javascript" type="text/javascript" src="XMLHTTP.js">
</script>
<h1> PAGINA ATUALIZADA SEM REFRESH </H1>
<hr><br>
<div id="news"></div>
</html>

<?PHP
$now = gmdate('D, d M Y H:i:s') . ' GMT';
header('Expires: ' . $now);
header('Last-Modified: ' . $now);
header('Cache-Control: no-store, no-cache, must-revalidate'); // HTTP/1.1
header('Cache-Control: pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
header('Pragma: no-cache'); // HTTP/1.0

echo "<h1>"."16:00"." - "."PHP é a linguagem mais usada na net em 2004"."</h1>";
echo "<h1>"."17:00"." - "."PHP5 tem suporte a orientacao a objetos"."</h1>";

?>
<?php ob_end_flush();?>


http://onidesk.sytes.net

Usando POST ao invés de GET
publicado por Guilherme Gilson - 2005-10-23 05:53:08

Ae Bruno, primeiramente parabens pelo artigo, apesar dos pequenos que foram sendo corrigidos, sua contribuicaum foi magnifica...

Contudo fiquei com uma duvida. No seu exemplo, vc usa {req.open("GET", url, true)} mas eu gostaria de saber como faria para utilizar o POST. Como seriam informados os parametros?
req.Send(???) Qual o formado que eles devem ser escritos?

Valew,
ggso

Parabens !!
publicado por Alexandre Correa - 2005-11-10 22:27:56

primeiramente parabens pelo artigo !! testei aqui .. funcionou blzinha !!!


também queria saber sobre como usar POST no lugar do GET !!!

abraço !!

Alexandre
Onda Internet
www.ondainternet.com.br

Erro de codificação
publicado por Júlio César de Oliveira - 2005-11-23 03:22:30

Me Ajude porque se eu carregar uma página com html que tenha a palavra "endereço" porque ela tá vindo assim :"Endere?"

Alguem sabe Arrumar ?

loading...
publicado por uiski - 2005-12-21 16:22:26

eu gostaria de saber como que eu faço pra enquanto o servidor estiver carregando as informações que apareça uma div escrito carregando ja fiz de algumas formas mais não apareceu quem tiver uma solução pra isso... por favor ajuda ae!!! :D

Where...se eu quiser colocar?
publicado por vaza - 2006-01-19 08:38:36

E se eu quiser colocar um Where ai? o que eu posso fazer?
Abraços.

Mto bom! Obrigado!
publicado por Klaus P. Laube - 2006-01-25 04:32:04

Mto bom mesmo! Tem contéudo na net mas muitas coisas são inúteis ou que não passam uma explicação clara de código. Gostei mesmo!!! Estou ansioso para aplicar em um novo projeto... obrigado por me abrir esta porta amigo!

e enviano um campo ???
publicado por chan10 - 2006-01-30 06:00:55

Olá Bruno,
muito bom seu artigo de ajax, bem so queria saber uma coisa, tipo se eu quiser enviar um campo de um formulario pra pagina que vai carregar no load

loadXMLDoc("http://localhost/news.php");

bem sei que poderia mandar por parametro na url tipo:

nome = document.form1.nome.value;
loadXMLDoc("http://localhost/news.php?nome="nome);

mas nao tem como dar tipo um submit pra eu poder pegar o campo no php com o $_POST[]:

$nome = $_POST["nome"];

bem desculpe encomodar ai !!!
valeu !!!

Problemas com palavras acentuadas
publicado por Laurimar Pereira de Souza - 2006-03-27 06:25:14

Olha só pessoal, apareceu o seguinte problema, onde a palavra é assentuada, ele coloca um "?".
Alguém pode me ajudar a resovler isso.
o script está em www.topserverbr7.com/~sidronew/new.php
Fico no aguarde de ajuda.

Problemas com palavras acentuadas
publicado por Laurimar Pereira de Souza - 2006-03-27 06:43:10

Olha só, tentei usar o código postado Por Canibald, mas tb não funcionou.

Funcionou
publicado por Laurimar Pereira de Souza - 2006-03-27 07:16:18

Ok, Pessoal o script funcionou ok, só não estava atualizando aqui, mas já está ok.
agora, quero saber o seguinte,
Quero carregar a noticia clicada, no mesmo arquivo,
tipo:

Noticia Clicada,


noticia 1...
noticia 2...
noticia 3.....

Grato por ajuda.

Funciona muito bem
publicado por Lauro_lab - 2006-05-24 23:05:41

Agora a minha dúvida é o seguinte:
Eu adaptei um pequeno site com esse recurso e achei excelente mas ta dando pau nos formulários pois dentro dessa chamada ele não consegue localizar o manipulador do form pra checagem antes do submit.
Se eu chamo a pagina por fora vai normal, dentro do site e dá um erro de java, informando a falta do objeto.

Usando XMLHttpRequest
publicado por Lauro_lab - 2006-05-24 23:16:17

eu consegui resolver o erro do manipulador e agora ele checa antes de enviar o formulario.

sobre o sistema de news de exemplo
publicado por icaroscherma - 2006-08-19 07:49:49

Oi, alguém poderia disponibilizar o texto necessário para criar as tabelas do SQL ?
Fiz uma aki, funcionar funcionou, mas queria ver como seria o mais correto...
Thanks ^^

Usando XMLHttpRequest
publicado por Alex - 2006-08-21 12:28:18

Ola,,,

Tem como fazer isso!

Clicou no botao processar aparece um alert com o "aguarde", ao termino do processamento ele retira o alert e exibi um resultado!

Alguem tem um exemplo.

To tomando uma surra!

Obrigado

Validação CPF/CNPJ/E-mail
publicado por realco - 2006-08-24 14:26:52

existem alguma possibilidade? ou alguém já tentou criar um em que seja validado cpf/cnpj, e-mail após o campo do form perder o foco?


div como parâmetro da função
publicado por Carlos Sica - 2006-10-11 18:22:57

preciso passar o campo div como parâmetro para tornar a função processReqChange() genérica mas não consigo fazer isto porque a chamada dela não utiliza parâmetros:
req.onreadystatechange = processReqChange;
tentei colocar os parâmetros mas tudo para de funcionar.
mudanças:
loadXMLDoc(url,campo)
...
req.onreadystatechange = processReqChange(campo);
...
<body onLoad="loadXMLDoc(www.teste.com.br,document.form.campo.id)">
...
<div id="news"></div>
...

Re: div como parâmetro da função
publicado por Carlos Sica - 2006-10-11 18:24:50

desculpem:
<body onLoad="loadXMLDoc(www.teste.com.br,document.form.news.id)">

JavaScript não roda no Firefox
publicado por Antonio Fiumari - 2007-09-03 11:01:46

Prezado Bruno:
O JavaScript abaixo não roda através do navegador Firefox. Será que VC poderia me ajudar alterando algum(s) parâmetros ? Agradeço desde já = Fiumari:
<script language="JavaScript"> var ultimo=-1, dBanner;
function carrega(x) {dBanner=x;Banners()}
function Banners()
{ var MNews = new Array();
MNews[0]= '<iframe " name="_blank" scrolling="no" src="http://www.finet.com.br/google.htm" width="100%" frameborder="0" target="_blank" height="350" BORDER="0"></iframe><a href="http://www.finet.com.br/google.htm" target="_blank">CLIQUE => E ABRA O SITE AMPLIADO</a>';
MNews[1]= '<iframe " name="_blank" scrolling="no" src="http://www.finet.com.br/google2.htm" width="100%" frameborder="0" target="_blank" height="350" BORDER="0"></iframe><a href="http://www.finet.com.br/google2.htm" target="_blank">CLIQUE => E ABRA O SITE AMPLIADO</a>'
while((Numero = parseInt(Math.random()*MNews.length))==ultimo);
dBanner.innerHTML=MNews[Numero];
setTimeout("Banners()",15000);
} </script>

Publique os seus Comentários

Nome:
Email:
Título:
Comentário:

NOTA: Cadastre-se no site para poder publicar comentários.

 
webmaster: João Prado Maia   © 2000 - 2005 phpbrasil.com
Gerado em 3.608 segundos