Ir para conteúdo
Fórum Script Brasil
  • 0

Problema com Ajax/Javascript


pcjardim

Pergunta

estou testando o exemplo do Eliano Estevam postado em www.revistaphp.com.br o artigo "Listando dados com Ajax usando Prototype e PHP" porém acontece os seguintes erros: primeiro quando digito um nome e mando pesquisar clicando no botão "buscar" ele não tem ação alguma, se digito um nome e dou "enter" ele chama a página cliente.php mas sempre da erro na primeira linha que tenha qualquer comando, no caso "require_once("db/db.php");"... para testar eliminei a linha e coloquei o código do db.php... sempre o mesmo erro, objeto inesperado... o que será que estou fazendo de errado, apenas copiei o código?? vou postar abaixo o código

cliente.jp


// Função de crição da tabela de listagem de clientes

function createGrid(nome)
{
if(nome == null)
{
nome = "";
var url = 'cliente.php';
var parametros = 'nome='+nome;
var myAjax = new Ajax.Request( url,
{
method: 'post', parameters: parametros, onLoading: carregando, onComplete: escreve
});
}

// Função de pesquisa
function pesquisar()
{
// Passando como parâmetro o valor do campo pesq_nome do formulário de pesquisa
createGrid( $("pesq_nome").value );
}

// Função de exibição de imagem de processamento
function carregando()
{
$("msg").style.display="block";
$("msg").innerHTML="<img src='ajax-loader.gif'>";
}

// Escreve a tabela de listagem de clientes
function escreve(request)
{
$("msg").style.display="none";
 
var xmldoc=request.responseXML;
var cabecalho = xmldoc.getElementsByTagName('cabecalho')[0];

  if(cabecalho!=null)
{
var coluna = cabecalho.getElementsByTagName('coluna');
var tabela="<table width='100%' border='0'><tr bgcolor='#666666'>"
 
//cabecalho da tabela
for(i=0;i<coluna.length;i++)
{
tabela+="<td><b><font color='#FFFFFF'>"+coluna[i].firstChild.data+"</font></b></td>";
}
tabela+="</tr>"
//corpo da tabela
var registros = xmldoc.getElementsByTagName('registro');
 
for(i=0;i<registros.length;i++)
{
var itens = registros[i].getElementsByTagName('item');
tabela+="<tr id=linha"+i+" bgcolor='#DDDDDD'>";
for(j=0;j<itens.length;j++)
{
if(itens[j].firstChild==null)
{
tabela+="<td></td>";
}
else
{
tabela+="<td>" + itens[j].firstChild.data + "</td>";
}
}
tabela+="</tr>";
}
tabela+="</table>";
$("listagem").innerHTML=tabela;
tabela=null;
}else{
$("listagem").innerHTML="<div align='center'>Não há registros...</div>";
}
}
[/CODEBOX]

cliente.php

[CODEBOX]
<?php
// Importando a classe de conexão
require_once("db/db.php");
 
// Instanciando a classe de conexão
$db = new db();
// Abrindo o banco de dados
$con = $db->open();
// Select, trazendo os dados da tabela de Cliente. O código $_POST['nome'] contém o valor da busca
$sql = "SELECT * FROM tbCliente WHERE nome LIKE '%" . $_POST['nome'] . "%'";
// Executa o sql
$query = mysql_query($sql);
 
// Verificando se há registros
if(mysql_num_rows($query)){
 
// Montando o XML com os registros do banco
header("Content-type: application/xml charset=iso-8859-1");
$xml="<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>";
 
$xml.="<dados>";
 
// Definindo as colunas da tabela de listagem dos registros
$xml.= "<cabecalho>";
$xml.= "<coluna>Código </coluna>";
$xml.= "<coluna>Nome </coluna>";
$xml.= "<coluna>email </coluna>";
$xml.= "</cabecalho>";
 
// Montando o corpo da tabela
while ($dados = mysql_fetch_array($query)){
$xml.="<registro>";
$xml.= "<item>".$dados['id']."</item>";
$xml.= "<item>".$dados['nome']."</item>";
$xml.= "<item>".$dados['email']."</item>";
$xml.="</registro>";
}
 
 
//fim da tabela
$xml.="</dados>";
}else{
header("Content-type: application/xml");
$xml="<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>";
}
 
// Retornando o XML com os registros do banco
echo $xml;
 
// Fechando o banco
$db->close($con);
exit();
 
?>

lista.php


<html>
<head>
<title>
Listagem de Clientes
</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<!-- Importando a biblioteca javascript de clientes -->
&lt;script language="javascript" src="Cliente.js"></script>
<!-- Importando a biblioteca javascript Prototype -->
&lt;script language="javascript" src="prototype.js"></script>
</head>
 
<!-- Na inicialização da página é executada a função createGrid. Essa função cria a tabela de listagem com os dados do banco -->
<body onLoad="java script:createGrid();">
<!-- Imagem de animação do processamento -->
<div id='msg' style='display:none; position:absolute; left: 274px; top: 13px; width: 109px; height: 27px;'></div>
<table width="100%" border="0">
<tr>
<td>
<!-- Formulário de pesquisa -->
<form action="cliente.php" method="post">
Nome:
<input id="pesq_nome" name="pesq_nome" type="text" onKeyUp="java script: pesquisar (this.value);">
<input type="button" name="Button" value="Buscar" onClick="java script: pesquisar();">
</form>
</td>
</tr>
<tr>
<td>
<!-- Camada onde será mostrada a tabela de listagem -->
<div id="listagem"></div>
</td>
</tr>
</table>
</body>
</html>
[/CODEBOX]

db.php

[CODEBOX]
<?php
/*
Classe para conexão em MySQL
*/
class db{
 
// Host
var $host = "localhost";
// Usuário de conexão
var $user = "root";
// Senha para conexão
var $pass = "";
// Banco de dados
var $db = "cliente";
 
// Função para abrir o banco de dados
function open()
{
// conecta o mysql
$conn = mysql_connect($this->host,$this->user,$this->pass) or die ("<br><br><center>Problemas ao conectar no servidor: " . mysql_error() . "</center>");
// seleciona o banco de dados
mysql_select_db($this->db) or die ("<br><br><center>Problemas ao selecionar a base de dados do sistemas: " . mysql_error() . "</center>");
return $conn;
}
//Função de fechamendo do banco
function close($conn)
{
mysql_close($conn);
}
}
?>

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Particione seu problema cara. Eu tenho a impressão de que o erro é no PHP, nessas declarações de classes aí. Então faça uma coisa de cada vez. Procure saber se está usando o php direito, certifique de que ele ta 100% perfeito e funcionando direito. ESQUEÇE O JAVASCRIPT.

Vá lá na seção PHP e peça ajuda pros caras lá que manjam. Quando estiver usando o PHP e estiver funcionando 100% aí você usa Ajax.

Akeleabrasssssss

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...