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');
[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>"; }
// 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 --> <script language="javascript" src="Cliente.js"></script> <!-- Importando a biblioteca javascript Prototype --> <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); } } ?>
Pergunta
pcjardim
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
cliente.php
<?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
db.php
<?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
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.