Ir para conteúdo

POWERED BY:

Arquivado

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

Eliseu M.

[Resolvido] Problemas com SELECT

Recommended Posts

E aí pessoal, beleza? Decide começar a fuçar em Ajax (já deteria ter começado faz tempo), mas ok. O problema é que olhei uns tutoriais e não consegui ter sucesso de modo algum. Meus códigos:

 

ajax.php (página do teste)

<script type="text/javascript">
function display_data(id) { 
   xmlhttp=GetXmlHttpObject();
   if (xmlhttp==null) {
       alert ("Your browser does not support AJAX!");
       return;
   } 
   var url="get.php";
   url=url+"?id="+id;
   xmlhttp.onreadystatechange=function() {
       if (xmlhttp.readyState==4 || xmlhttp.readyState=="complete") {
           document.getElementById('txtHint').innerHTML=xmlhttp.responseText;
       }
   }
   xmlhttp.open("GET",url,true);
   xmlhttp.send(null);
}
</script>
<?php include "config.php"; ?>
<?php
$sql = mysql_query("SELECT id, kind FROM products");
while ($row = mysql_fetch_array($sql)){
$id = $row['id'];
$kind = $row['kind'];
	echo "$id - $kind<br />";
}
?>
<form>
Select category:
<select onchange="display_data(this.value)">
<?php
$sql = mysql_query("SELECT id, kind FROM products");
while ($row = mysql_fetch_array($sql)){
$id = $row['id'];
$kind = $row['kind'];
	echo "<option value=\"$id\">$kind</option>";
}
?>
</select>
</form>
<div id="txtHint"> </div>

Até aqui... OK. Todas as consultas são feitas perfeitamente.

 

get.php

<?php
include "config.php";
if (is_numeric($_GET['id'])) {
   $query="select id, kind from products where id=$_GET[id]";
   $result=mysql_query($query);
while ($row = mysql_fetch_array($result)){
$id = $row['id'];
$kind = $row['kind'];
	echo "$id - $kind<br />";
}}
?>

 

TABELA products

id

kind

 

O que pode estar errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz o seguinte:

xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4 || xmlhttp.readyState=="complete") {
            alert( xmlhttp.responseText );
            document.getElementById('txtHint').innerHTML=xmlhttp.responseText;
        }
    }
vê oque aparece no alert(), ou se ele nem chega a ser executado.

 

essa query aqui, eu faria:

$query="SELECT `id`, `kind` FROM `products` WHERE `id` = {$_GET['id']} ";
    $result=mysql_query($query);
        while ($row = mysql_fetch_assoc($result)){
                echo $row['id'].' - '.$row['kind'].'<br />';

e acessando diretamente:

localhost/get.php?id=2

 

aparece oque você esperava? ou erros php ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não apareceu qualquer erro, a query não funcionou e, quando acesso diretamente, funciona perfeitamente. Não sei, mas parece que meu servidor não aceita Ajax, pois já tentei outros scripts e nada, isso é possível? Poderiam fazer o teste para mim, por favor?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz o seguinte:

xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4 || xmlhttp.readyState=="complete") {
            alert( xmlhttp.responseText );
            document.getElementById('txtHint').innerHTML=xmlhttp.responseText;
        }
    }
vê oque aparece no alert(), ou se ele nem chega a ser executado.

 

E esse alert q coloquei? ele aparece??

 

essa funcao aqui:

GetXmlHttpObject();
existe? onde você declarou ela ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

E esse alert q coloquei? ele aparece??

 

essa funcao aqui:

GetXmlHttpObject();
existe? onde você declarou ela ?

 

O alert não aparece. A função está no começo da função... está declarado? Obs.: sou newba em Ajax o.O

Compartilhar este post


Link para o post
Compartilhar em outros sites

A função está no começo da função... está declarado? Obs.: sou newba em Ajax o.O

 

hein?!

 

Entenda o seguinte, aqui você declara a funcao display_data()

function display_data(id) {
e aqui você usa/chama ela:

<select onchange="display_data(this.value)">
ta?

AJAX nada eh mais doque Javascript.. você tem duvidas de Javascript..

 

Oque eu perguntei, foi o seguinte, aqui:

xmlhttp=GetXmlHttpObject();
você usa/chama a funcao GetXmlHttpObject() mas nao estou vendo ela declarada em lugar nenhum.. ou seja:

function GetXmlHttpObject(){ ...
:lol:

 

pegou ? de onde você copiou esse trecho de codigo? você se esqueceu de pegar uma parte.

A que cria o objeto AJAX.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah... saquei!

 

Olha o script (original do site):

 

<script language="JavaScript" type="text/javascript">
function display_data(id) { 
	xmlhttp=GetXmlHttpObject();
	if (xmlhttp==null) {
    	alert ("Your browser does not support AJAX!");
    	return;
	} 
	var url="ajax.php";
	url=url+"?employ_id="+id;
	xmlhttp.onreadystatechange=function() {
    	if (xmlhttp.readyState==4 || xmlhttp.readyState=="complete") {
        	document.getElementById('employ_data').innerHTML=xmlhttp.responseText;
    	}
	}
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}
</script>

o.O

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda esta faltando declarar a funcao..

function GetXmlHttpObject()
{
var xmlHttp=null;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
return xmlHttp;
}

http://www.matioli.sengi.com.br/apostilas/ajax/ajax_exemplo_suggest.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hmm, podes crer... o problema era esse mesmo. Valeu aí pela ajuda brother, você foi bastante atencioso xD

 

Muitos obrigado, agora vou continuar meus estudos, falou!

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.