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

[Resolvido] HttpRequest


Anderson Gouveia

Pergunta

Pessoal, boa noite!

Preciso de uma ajuda senão minha cuca vai explodir.

Pra ficar fácil de entender, vou dizer o que tenho, e o que pretendo fazer.

Tenho em minha página um campo principal com autocomplemento (google sugest) que funciona belezinha.

Tenho no mysql, uma tabela com os campos (Cod, Produto, preço).

Gostaria de disponibilizar na página, mais 3 campos, na verdade serião 3 <td>, cada uma com sua id independente.

Quando o usuário inserisse o dado no campo principal (seja digitando ou pelo autocomplemento), com a função onblur fosse feita a busca no BD e cada um dos campos (Cod, Produto, preço), fosse retornado um em cada <td>.

Já tenho a página php que faz a busca no BD, e um script.js para tratar a requisição, mas só consigo fazer ele me retornar um único campo.

busca.php

<?php
header('Content-type: text/html; charset=iso-8859-1');
if(!empty($_GET["valor"]))
{
require_once('conecta.php');

$sql="select * from produto where cod= '$_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[produto];
}
}
}
?>
script.js
// JavaScript Document

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) {

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

} else {
alert("Houve um problema ao obter os dados:n" + req.statusText);
}
}
}
E na págian onde serão exibidos os resultados:
&lt;script>
function pesquisa(valor)
{
//FUNÇÃO QUE MONTA A URL E CHAMA A FUNÇÃO AJAX
url="busca.php?valor="+valor;
ajax(url);
}
</script>

Eu precisaria criar uma fila de requisição para isto?

(busca dado campo principal => preenche campo 1;

busca dados campo1 => preenche campo 2;

busca dados campo 2 => preenche campo 3;)

Ou, como a consulta ao banco vai me retornar somente uma linha, ou seja, um array com 3 chaves , teria como o js interpretar essa array e retornar no campo 1 a primeira chave, no campo 2 a segunda e campo 3 a terceira?

Como eu poderia criar uma fila, ou uma interpretação do array?

Desde já agradeço a atenção de todos.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Boa tarde!

Primeiramente, obrigado pela atenção.

Tentei fazer isto, no php fiz:

echo"<tr>
<td>$pegar[cod]</td>
<td>$pegar[produto]</td>
<td>$pegar[preço]</td>
</tr>";
E na página que recebe o resultado deixei assim:
<table>
<div id="pagina"></div> //div onde será inserido o resultado
</table>

Porém não aparece nada dentro da tabela.

Se eu deixar a div fora da tabela e formatar os campos para input text, daí dá certo, mas com ela dentro da table não dá.....

Desculpe pela insistência, mas é que preciso muito deste código funcionando.

Link para o comentário
Compartilhar em outros sites

  • 0

Pessoal, desculpa pela insistencia, mas é que preciso muito disso e na estou conseguindo fazer funcionar de jeito nenhum.

Minha pagina php, onde existe a busca no BD, me retorna essa array:

Array ( [cod] => 12 [produto] => borracha [preço] => 0.65 )

Preciso que o valor da chave [cod] seja inserido na <td id="cod">, o valor da chave produto na <td id="produto"> e o valor da chave [preço] na <td id="preço">, mas só consigo trazer um deles.

Olhando na net, vi que o XHttpRequest pode interpretar um XMLReponse, então fomatei a array para uma saída XML, mas não consegui acertar o script.js para funcionar.

Como faço pra trazer os 3 valores em ids diferentes?

Quais alterações preciso fazer para que consiga esse resultado?

Abraços!

Link para o comentário
Compartilhar em outros sites

  • 0

Pessoal, agradeço a atenção que todos dispensaram, mas consegui resolver meu problema.

Imprimi o resultado da consulta em formato XML e depois de 127 páginas de pura loucura consegui achar o que eu queria nesse site aqui:

http://www.w3schools.com/php/php_ajax_responsexml.asp

Quem estiver com a mesma dificuldade que eu tive pra entender algo tão simples, vai direto nesse site que mata a pau.

valeu

Abraços.

"As vezes procuramos soluções mirabolantes para nossos problemas, e elas estão bem debaixo de nosso nariz" :unsure:

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
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...