Boa noite,
Sou novato em PHP, estou com problemas em passar o valor selecionado em um select para uma variável php que usarei em uma nova consulta sql.
Tenho o primeiro select :
<select name="escola" size="1" id="escola" onchange="getDados();" disabled="disabled">
<option value ="--"> selecione</option>
<?php
include "conecta_mysql.php";
$sql = "SELECT * FROM `nomeescola` ORDER BY `nome` DESC ";
$result = mysqli_query($conexao, $sql) or die("falha na instrução sql");
if(mysqli_num_rows($result))
{
while($dados=mysqli_fetch_array($result))
{
echo "<option value='".$dados['nome']."'>".$dados['nome']."</option>";
}
}
else
echo "<option value='none'>Nenhum resultado encontrado!</option>" ;
mysqli_close($conexao);
?>
</select>
Quando o usuário escolher um valor desse campo select, preciso atualizar um segundo select com relação ao que foi escolhido pelo usuário no primeiro sem dar refresh.
Tenho esse arquivo ajax.js
/**
* Função para criar um objeto XMLHTTPRequest
*/
function CriaRequest() {
try{
request = new XMLHttpRequest();
}catch (IEAtual){
try{
request = new ActiveXObject("Msxml2.XMLHTTP");
}catch(IEAntigo){
try{
request = new ActiveXObject("Microsoft.XMLHTTP");
}catch(falha){
request = false;
}
}
}
if (!request)
alert("Seu Navegador não suporta Ajax!");
else
return request;
}
function getDados() {
// Declaração de Variáveis
var teste = document.getElementById("escola").value;
var xmlreq = CriaRequest();
// Exibi a imagem de progresso
//result.innerHTML = '<img src="Progresso1.gif"/>';
// Iniciar uma requisição
xmlreq.open("GET", "teste.php?escola=" + teste, true);
// Atribui uma função para ser executada sempre que houver uma mudança de ado
xmlreq.onreadystatechange = function(){
// Verifica se foi concluído com sucesso e a conexão fechada (readyState=4)
if (xmlreq.readyState == 4) {
// Verifica se o arquivo foi encontrado com sucesso
if (xmlreq.status == 200) {
result.innerHTML = xmlreq.responseText;
}else{
result.innerHTML = "Erro: " + xmlreq.statusText;
}
}
};
xmlreq.send(null);
}
e então no segundo select tenho o seguinte código :
<label> Quantidade de turmas: </label>
<select name="quantidade" size="1" id="quantidade" disabled="disabled">
<option value ="--"> selecione</option>
<?php
include "conecta_mysql.php";
$teste = $_GET["escola"];
if(empty($teste))
{
echo "<script>window.alert('VARIÁVEL VAZIA!')</script>";
}
else
{
$sql = "SELECT * FROM `turma` WHERE escola = $teste";
}
sleep(1);
$result = mysqli_query($conexao, $sql) or die("falha na instrução sql");
if(mysqli_num_rows($result))
{
while($dados=mysqli_fetch_array($result))
{
echo "<option value='".$dados['nome']."'>".$dados['nome']."</option>";
$count++;
}
}
else
echo "<option value='none'>Nenhum resultado encontrado!</option>" ;
mysqli_close($conexao);
?>
</select>
O que está acontecendo é que a variável $teste está sempre vazia, não estou conseguindo pegar o valor que foi selecionado no primeiro select. Alguém sabe o que está errado?