Jump to content


Photo

Ajax?


  • Faça o login para participar
6 replies to this topic

#1 InSoNiA

InSoNiA

    Novato no fórum

  • Usuários
  • 20 posts
  • Sexo:Não informado

Posted 28/12/2007, 13:13

Olá pessoal, tenho um portal da minha cidade já a alguns anos. Agora estou querendo dar uma turbinada nele. Um dos lances que decidi e achei que ficari bem legal é fazer o site inteiro sem piscar (REFRESH).

Uso o seguinte código em JS selectcustomer.js

[codebox]var xmlHttp

function showCustomer(str) {
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null) {
alert ("Seu navegador são suporta HTTP Request")
return
}
var url=str
if(url.indexOf("?")==-1) {
url=url+"?"
} else {
url=url+"&"
}
url=url+"sid="+Math.random()
url = url + "&?palavra=" + document.getElementById("palavra").value
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}

function stateChanged() {
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
var texto = xmlHttp.responseText;
texto = texto.replace(/\+/g," ");
texto = unescape(texto);
document.getElementById("txtHint").innerHTML=texto;
document.getElementById("aguarde").style.display = "none";
}
if(xmlHttp.readyState==1) {
document.getElementById("aguarde").style.display = "block";
document.getElementById("aguarde").innerHTML="<center><br><br><img src='imagens/carregando.gif' title=''>Carregando.</center>";
}
if(xmlHttp.readyState==2) {
document.getElementById("aguarde").style.display = "block";
document.getElementById("aguarde").innerHTML="<center><br><br><img src='imagens/carregando.gif' title=''>Carregando..</center>";
}
if(xmlHttp.readyState==3) {
document.getElementById("aguarde").style.display = "block";
document.getElementById("aguarde").innerHTML="<center><br><br><img src='imagens/carregando.gif' title=''>Carregando...</center>";
}
}

function GetXmlHttpObject() {
var objXMLHttp=null
if (window.XMLHttpRequest) {
objXMLHttp=new XMLHttpRequest()
} else if (window.ActiveXObject) {
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
}
return objXMLHttp
}[/codebox]

Na página index.php carrego tenho o cabeçalho, rodape menus e o corpo que é carregado dentro de uma DIV:
Coloquei no código abaixo só o que interessa para que entendam o que ocorre.

[codebox]
&lt;script language="javascript">
//Ajax
function chama(str) {
showCustomer(str);
}
// -->
</script>

<body onload=chama('capa.php')>
<div id="txtHint"></div>
<div style="LEFT: 350px; POSITION: absolute; TOP: 350px; background-color: #FFFFFF; z-index=10; filter: Alpha(Opacity=80); " id="aguarde"></div>[/codebox]

Os links funcionam legal, o problema é nos formulários, por exemploa busca não retorna nada. Creio que não estou conseguindo e capturar a variavel na página busca.php


No formulário da busca está assim:

<form id="formbusca" name="formbusca" method="post" action="java script: chama('busca/busca2.php');" class="form">
<input name="palavra" type="text" class="campoBusca" id="palavra" />
<input name="btbusca" type="submit" id="btbusca" value="Buscar" />
</form>

O endereço do site em funcionamento para que quiser entende mlehor é www.riopretoguia.com.br e novo é www.riopretoguia.com.br/index3.php

Agradeço que puder me ajudar.

Edição feita por: InSoNiA, 28/12/2007, 13:55.


#2 Alex Hiroshi

Alex Hiroshi

    Super Veterano

  • Ex-Admins
  • 4923 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 28/12/2007, 13:20

No caso do formulário, você precisa enviar o valor do campo para busca2.php e o retorno adicionar no conteúdo do site. Do jeito que está a página só é incluida no conteúdo, sem passar nenhum valor para a página.
Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Ex-Administrador

#3 InSoNiA

InSoNiA

    Novato no fórum

  • Usuários
  • 20 posts
  • Sexo:Não informado

Posted 28/12/2007, 13:54

Então amigo Alex Hiroshi o problema é esse sou Hiper, Mega, Ultra novato nisso, pra ser sincero comecei a aprender JS faz uns 15 dias, e não sei como passar a variavel para busca2.php. Estou tendo dificuldades em integrar as linguagens JS e PHP saco?

Como faço isso?

Agradeço que puder me dar uma luz

Edição feita por: InSoNiA, 28/12/2007, 13:55.


#4 DarkDemo

DarkDemo

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Não informado

Posted 28/12/2007, 14:06

Cara.. eu respondi isso pra vc no forum do Imasters...

Lá mostrei qual foi seu erro e ainda coloquei um exemplo de como deve ser feito...

Vc chegou a ver ???

Abraços...

#5 InSoNiA

InSoNiA

    Novato no fórum

  • Usuários
  • 20 posts
  • Sexo:Não informado

Posted 28/12/2007, 14:37

Oi DarkDemo blz!

Cara deu certo assim:

[codebox]var xmlHttp

function showCustomer(str) {
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null) {
alert ("Seu navegador são suporta HTTP Request")
return
}
var url=str
if(url.indexOf("?")==-1) {
url=url+"?"
} else {
url=url+"&"
}
url=url+"sid="+Math.random()
//url = url + "&?id=" + document.getElementById("palavra").value; // comentei essa linha que vc havia colocado
palavra = document.formbusca.palavra.value // Inclui esta linha
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}[/codebox]

No form chamei assim: action="java script: chama('busca/busca.php?palavra='+palavra);"

Agora não entendo o seguinte, tenho que clicar 2 vezes no botão para funcionar!

Será que alguém sabe o porque?

VLW

Edição feita por: InSoNiA, 28/12/2007, 14:51.


#6 DarkDemo

DarkDemo

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Não informado

Posted 28/12/2007, 15:01

Tire o call da função do "action" e coloque no "onClick" do botao.. ou link... tipo assim:

<input type = "button" value = "Vai" onClick = "chama('busca/busca.php?palavra='+palavra)">
<a href = "#" onClick = "chama('busca/busca.php?palavra='+palavra)"> Click Me ! </a>


Abraços...

#7 InSoNiA

InSoNiA

    Novato no fórum

  • Usuários
  • 20 posts
  • Sexo:Não informado

Posted 28/12/2007, 17:41

Olá, se eu coloco
<a href = "#" onClick = "chama('busca/busca.php?palavra='+palavra)"> Buscar </a>

Da o erro
[object]

Se coloco assim:
Olá, se eu coloco
<a href = "java script: chama('busca/busca.php?palavra='+palavra)"> Buscar </a>

Tenho que clicar 2 vezes também

Não entendo porque to tento que clicar no link duas vezes

Fecha o tópico por favor, foi resolvido o lance da variavel!

VLW vou abrir outro tópico para o lance dos dois clicks




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq