Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Maneju

[Resolvido] Busca em Cadastros Com AJAX

Recommended Posts

Olá.

 

Tenho um sistema de busca em PHP + AJAX que me retorna o resultado da pesquisa conforme o Usuário digita o nome do cliente (like). Porém o resultado é apresentado na página numa DIV (pagina') e não estou conseguindo carregar para um combo, por exemplo, para selecionar.

 

document.getElementById("pagina").innerHTML = req.responseText;

 

Grato!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa foi mal, vamos explicar melhor então:

 

PS - estes códigos não são meus, peguei na NET e fiz algumas modificações. Não tenho os créditos de quem os fez no momento...

 

Tenho esta busca:

 

<?php

if(!empty($_GET["valor"]))

{

$conexao=mysql_connect("localhost","root","");

mysql_select_db("testes");

 

$sql="select * from clientes where Razao like '$_GET[valor]%'";

$resultado=mysql_query($sql) or die (mysql_error());

 

 

$linhas=mysql_num_rows($resultado);

 

if($linhas>0){

while($pegar=mysql_fetch_array($resultado))

echo "$pegar[Razao] <br>";

}

}

?>

 

E tenho este Script AJAX:

 

function ajax(url)

{

 

//alert(nick);

//alert(dest);

//alert(msg);

 

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="pagina" e insere o conteudo

// retornado nela, como texto HTML

 

 

document.getElementById('pagina').innerHTML = req.responseText;

 

} else {

alert("Houve um problema ao obter os dados:n" + req.statusText);

}

}

}

 

 

document.getElementById('pagina').innerHTML = req.responseText
Este código devolve pra mim os resultados da busca na minha página index.php na DIV id = 'pagina'. Está funcionando certo, porém este resultado é um HTML que me permite apenas visualizá-lo. Preciso que esta informação fique num combo ou algo parecido para eu poder selecionar o registro que eu queira.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se quer um select com as opções, crie-o com o PHP:

echo "<select...";
while($result = mysql_fetch_array(mysql_query("INSTRUÇÃO SQL"))){
echo "<option value='tal'>Texto</option>";
}
echo "</select>";

E insira na página a resposta AJAX do jeito que está fazendo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado por responder!

Cara eu tô bem no início de programação Web, então não entendi nada, hehehehehehehe

Se pudesse exemplificar, ficaria grato!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não etendi muito bem o que quer...

 

Se você quer carregar por AJAX as opções de um select (combobox), na página que você vai requisitar, faça como falei no post anterior...

 

Basicamente, CRIE a marcação HTML com o PHP através do echo... Assi que você for exibir a resposta, aparecerá o elemento criado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que bom que resolveu...

 

Se possível, poste o código aqui...

 

Pode ser útil para outras pessoas http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, vamos lá!

Se for útil cada um adapta como melhor convir. Segue a busca completa:

 

Index.Php

<html>

<head>

<title>BUSCA</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script src="script.js"></script>

<script>

function pesquisa(valor)

{

url="busca_nome.php?valor="+valor;

ajax(url);

}

</script>

</head>

 

<body>

<table width="657" border="0" bgcolor="#f7f7f7">

<tr>

<td align="center" bgcolor="#CCCCCC"><strong><font color="#FF0000" size="1" face="Verdana, Arial, Helvetica, sans-serif"><-

BUSCA -></font></strong></td>

</tr>

<tr>

<td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>Nome</strong></font>:

<input type="text" name="nome" onKeyup="pesquisa(this.value)"></td>

</tr>

<tr>

<td>

<div id="pagina"></div></td>

</tr>

</table>

 

</body>

</html>

 

Busca_Nome.Php

<?php

if(!empty($_GET["valor"]))

{

$conexao=mysql_connect("localhost","root","");

mysql_select_db("testes");

 

$sql="select * from clientes where Razao like '$_GET[valor]%'";

$resultado=mysql_query($sql) or die (mysql_error());

 

$linhas=mysql_num_rows($resultado);

 

if($linhas>0){

 

echo "<select>";

while($pegar=mysql_fetch_array($resultado))

echo "<option value=''>$pegar[Razao]</option>";

echo "</select>";

}

}

?>

 

Script.js

function ajax(url)

{

 

//alert(nick);

//alert(dest);

//alert(msg);

 

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="pagina" e insere o conteudo

// retornado nela, como texto HTML

 

 

document.getElementById('pagina').innerHTML = req.responseText;

 

 

} else {

alert("Houve um problema ao obter os dados:n" + req.statusText);

}

}

}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.