Ir para conteúdo

Arquivado

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

eu_Nana

Carregando dados em Select

Recommended Posts

Veja:

 

form.oficinas.php

 

<?php
	require "include/conexao.php";
?>


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Formulário</title>

            
<script type="text/javascript">
try{
    xmlhttp = new XMLHttpRequest();
}catch(ee){
    try{
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }catch(e){
        try{
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }catch(E){
            xmlhttp = false;
        }
    }
}

function doBusca(tuf){
    //limpa o select
    var c=document.getElementById("idprofessores")
    while(c.options.length>0)c.options[0]=null
    c.options[0]=new Option(" -- Aguarde ... -- "," -- Aguarde ... -- ")

    //Monta a url com a uf
    xmlhttp.open("GET", "oficinas.ajax.php?idoficinas="+tuf,true);

    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4){
            //limpa o select
            var c=document.getElementById("idprofessores")
            while(c.options.length>0)c.options[0]=null
            //Transforma a lista de cidades JSON em Javascript
            var idprofessores= eval((xmlhttp.responseText))
            //popula o select com a lista de cidades obtida
            for(var i=0;i<idprofessores.length;i++){
                idprofessores[i]=unescape(idprofessores[i])
                c.options[c.options.length]=new Option(idprofessores[i],idprofessores[i+1])
                                i++;
            }
        }
    }

    xmlhttp.send(null)
}
</script>

<link href="css/estilo.css" rel="stylesheet" type="text/css" />
</head>

<body>

<div id="conteudo">


<form action="insere.php" method="post">
  
	<table width="100%" border="0">
  		<tr>
    		<td colspan="5"> </td>
    	</tr>
  		<tr>
    		<td colspan="5" align="center">
    		Selecione seu nome:
    		<select name="nome" id="nome">
        		<option value="Selecione">Selecione</option>
				<? 
		
				$cok = $_POST['ok'];
				
				/************************************************************************************* 
					Consulta do idparticipantes e nome dos participantes existentes e mostra no select 
			    **************************************************************************************/
				$sql_nomes= "SELECT idparticipantes, nome from participantes where ok='1' order by nome asc";
				$resultado = mysql_query($sql_nomes) or die (mysql_error());
		 		
				while($linha=mysql_fetch_array($resultado))
		  		{
					echo("<option>" .$linha["nome"]."</option>");
				}				
				?>
    		</select>
            </td>
    	</tr>
  	
            
            <select name="idoficinas" id="idoficinas" onchange="doBusca(this.options[this.selectedIndex].value)">
    			<option value="Selecione">Selecione</option>
      			<? 

				/***************************************************************************************
					Consulta do idparticipantes e nome dos participantes existentes e mostrar no select 
				****************************************************************************************/
				$sql= "SELECT idoficinas, titulo from oficinas order by titulo asc";
				$res = mysql_query($sql) or die (mysql_error());
		 
		 
				while($row=mysql_fetch_array($res))
		  		{
					//echo("<option>" .$row["titulo"]."</option>");
					//echo("<option value='".$row["idoficinas"]."'>" .$row["titulo"]."</option>");
					echo '<option value="'.$row['idoficinas'].'">'.$row['titulo'].'</option>';
		  		}						
				?>
    		</select>
            
           
            
            </td>
    		
            <td width="51%">
            
            <span class="carregando">Aguarde, carregando...</span>
			<select name="idprofessores" id="idprofessores" >
      			<option value="">Escolha um Professor</option>
			</select>
 
            

    <td width="12%"> </td>
    <td width="10%"> </td>
  </tr>
  <tr>
    <td colspan="2"> </td>
    <td> </td>
    <td colspan="2"><input type="submit" name="button" id="button" value="Enviar" /></td>


</form>
</div>
</body>
</html>


oficinas.ajax.php

<?php
	header( 'Cache-Control: no-cache' );
	//header('Content-Type: application/json; charset="utf-8"', true);

	$con = mysql_connect( 'localhost', 'root', '' ) ;
	mysql_select_db( 'teste', $con );
	
	
	
		$idoficinas = $_GET['idoficinas'] ;

        $oficinas = array();

        $sql_oficinas = "SELECT idprofessores, nome FROM professores WHERE oficinas_idoficinas=$idoficinas ORDER BY nome";
        $res = mysql_query( $sql_oficinas );
        while($arr = mysql_fetch_array($res))
        {
           $nome = $arr['nome'];
        }
        echo $nome;
?>

Eu tentei fazer o seguinte: como no arquivo oficinas.ajax.php no while ele exibe o nome....pensei em passar esse valor lá no script onde esta "idprofessores", porém qnd tento fazer isso ele se confunde com a variavel do select q exibe os nomes dos alunos q esta no form acima.....então resolvi mudar o nome desse name desse select.....mais tb sem sucesso...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha

Teste aqui no mesmo arquivo com o seu, mas estados e cidades.

e funcionou eu só fiz uma mudancinha no <? ?>, coloquei <?php ?>.

E no option eu coloquei aspas.

Copia e testa rodando internet explorer, e veja se dá algum erro de script.

Se nao funcionar, veja se tem algum erro no PHP, as vezes nao aparece na tela, veja pelo código fonte.

<?php
        require "include/conexao.php";
?>


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Formulário</title>

            
<script type="text/javascript">
try{
    xmlhttp = new XMLHttpRequest();
}catch(ee){
    try{
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }catch(e){
        try{
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }catch(E){
            xmlhttp = false;
        }
    }
}

function doBusca(tuf){
    //limpa o select
    var c=document.getElementById("idprofessores")
    while(c.options.length>0)c.options[0]=null
    c.options[0]=new Option(" -- Aguarde ... -- "," -- Aguarde ... -- ")

    //Monta a url com a uf
    xmlhttp.open("GET", "oficinas.ajax.php?idoficinas="+tuf,true);

    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4){
            //limpa o select
            var c=document.getElementById("idprofessores")
            while(c.options.length>0)c.options[0]=null
            //Transforma a lista de cidades JSON em Javascript
            var idprofessores= eval((xmlhttp.responseText))
            //popula o select com a lista de cidades obtida
            for(var i=0;i<idprofessores.length;i++){
                idprofessores[i]=unescape(idprofessores[i])
                c.options[c.options.length]=new Option(idprofessores[i],idprofessores[i+1])
                                i++;
            }
        }
    }

    xmlhttp.send(null)
}
</script>

<link href="css/estilo.css" rel="stylesheet" type="text/css" />
</head>

<body>

<div id="conteudo">


<form action="insere.php" method="post">
  
        <table width="100%" border="0">
                <tr>
                <td colspan="5"> </td>
        </tr>
                <tr>
                <td colspan="5" align="center">
                Selecione seu nome:
                <select name="nome" id="nome">
                        <option value="Selecione">Selecione</option>
                                <?php 
                
                                $cok = $_POST['ok'];
                                
                                /************************************************************************************* 
                                        Consulta do idparticipantes e nome dos participantes existentes e mostra no select 
                            **************************************************************************************/
                                $sql_nomes= "SELECT idparticipantes, nome from participantes where ok='1' order by nome asc";
                                $resultado = mysql_query($sql_nomes) or die (mysql_error());
                                
                                while($linha=mysql_fetch_array($resultado))
                                {
                                        echo("<option>" .$linha["nome"]."</option>");
                                }                               
                                ?>
                </select>
            </td>
        </tr>
        
            
            <select name="idoficinas" id="idoficinas" onchange="doBusca(this.options[this.selectedIndex].value)">
                        <option value="Selecione">Selecione</option>
                        <?php 

                                /***************************************************************************************
                                        Consulta do idparticipantes e nome dos participantes existentes e mostrar no select 
                                ****************************************************************************************/
                                $sql= "SELECT idoficinas, titulo from oficinas order by titulo asc";
                                $res = mysql_query($sql) or die (mysql_error());
                 
                 
                                while($row=mysql_fetch_array($res))
                                {
                                        //echo("<option>" .$row["titulo"]."</option>");
                                        //echo("<option value='".$row["idoficinas"]."'>" .$row["titulo"]."</option>");
                                        echo "<option value='".$row['idoficinas']."'>".$row['titulo']."</option>";
                                }                                               
                          ?>
                </select>
            
           
            
            </td>
                
            <td width="51%">
            
            <span class="carregando">Aguarde, carregando...</span>
                        <select name="idprofessores" id="idprofessores" >
                        <option value="">Escolha um Professor</option>
                        </select>
 
            

    <td width="12%"> </td>
    <td width="10%"> </td>
  </tr>
  <tr>
    <td colspan="2"> </td>
    <td> </td>
    <td colspan="2"><input type="submit" name="button" id="button" value="Enviar" /></td>
</form>
</div>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu seiii

mas nao tem nada errado

nao sei pq ele ta acusando isso

eu testei aqui

com tudo igual

soh tabelas diferentes

 

tenta limpar seu cache

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muda o nome do id do select de professores para outro nome, e nao esqueça de alterar no script tbm

muito estranho oO

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha eu fiz uma alteração no script...na parte onde começa o try.... agora ele não exibe mais o erro ";" e mostra no select a msg de "Aguarde...Carregando" mais só fica nisso....mais antes nem isso fazia.....veja

 

<?php
        require "include/conexao.php";
?>


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Formulário</title>

<script type="text/javascript" src="../js/ajax.js"></script>
           
<script type="text/javascript">

try {
        xmlHttp = new XMLHttpRequest();
    }
    catch(ee) {
        try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e) {
            try {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e) {
                xmlHttp = false;
            }
        }
    }


function doBusca(tuf)
{
    //limpa o select
    var c=document.getElementById("idprofessores")
    while(c.options.length>0)c.options[0]=null
    c.options[0]=new Option(" -- Aguarde ... -- "," -- Aguarde ... -- ")

    //Monta a url com a uf
    xmlHttp.open("GET", "oficinas.ajax.php?idoficinas="+tuf,true);

    xmlHttp.onreadystatechange=function() 
	{
        if (xmlHttp.readyState==4)
		{
            //limpa o select
            var c=document.getElementById("idprofessores")
            while(c.options.length>0)c.options[0]=null
            //Transforma a lista de cidades JSON em Javascript
            var idprofessores= eval((xmlHttp.responseText))
            //popula o select com a lista de cidades obtida
            for(var i=0;i<idprofessores.length;i++){
                idprofessores[i]=unescape(idprofessores[i])
                c.options[c.options.length]=new Option(idprofessores[i],idprofessores[i+1])
                i++;
         }
        }
    }

    
	return xmlHttp;
}
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Haa entendii

Então o erro deve ser na parte de PHP;

para saber entra diretamente na página assim passando como parametro um id que você sabe que tem no banco.

 

oficinas.ajax.php?idoficinas=1

 

veja se dá erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não dá erro ..ele exibe pagina em branco qnd tiro o "echo $nome;"

 

while($arr = mysql_fetch_array($res))
        {
           $nome = $arr['nome'];
        }
        echo $nome;
...

 

e exibe o nome do professor qnd mantenho esse echo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

então está certo o php

o problema é no script.

alguma coisa... que eu nao vejo aonde.. preciso olhar mais

mas mantenha o echo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

então está certo o php

o problema é no script.

alguma coisa... que eu nao vejo aonde.. preciso olhar mais

mas mantenha o echo!

 

 

lá no script não tem como dar um print..para ver oq esta chegando em idprofessores e em idoficinas na variavel tuf....?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem, coloca antes da linha de chamar a página

alert(document.getElementById('idprofessores'));

alert(tuf);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem, coloca antes da linha de chamar a página

alert(document.getElementById('idprofessores'));

alert(tuf);

 

olá....esta correto isso, em idprofessores ele armazena isso: [object HTMLSelectElement] e em tuf: armazena o id correto....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha

Eu testei o seu novamente, só que com outras tabelas, funcionou.

Teste no IE e no Mozilla

<?php
        require "include/conexao.php";
?>


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Formulário</title>

            
<script type="text/javascript">
try{
    xmlhttp = new XMLHttpRequest();
}catch(ee){
    try{
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }catch(e){
        try{
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }catch(E){
            xmlhttp = false;
        }
    }
}

function doBusca(tuf){
    //limpa o select
    var c=document.getElementById("idprofessores");
    while(c.options.length>0)c.options[0]=null
    c.options[0]=new Option(" -- Aguarde ... -- "," -- Aguarde ... -- ");

    //Monta a url com a uf
    xmlhttp.open("GET", "oficinas.ajax.php?idoficinas="+tuf,true);

    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4){
            //limpa o select
            var c=document.getElementById("idprofessores");
            while(c.options.length>0)c.options[0]=null
            //Transforma a lista de cidades JSON em Javascript
            var idprofessores= eval((xmlhttp.responseText));
            //popula o select com a lista de cidades obtida
            for(var i=0;i<idprofessores.length;i++){
                idprofessores[i]=unescape(idprofessores[i]);
                c.options[c.options.length]=new Option(idprofessores[i],idprofessores[i+1]);
                i++;
            }
        }
    }

    xmlhttp.send(null);
}
</script>

<link href="css/estilo.css" rel="stylesheet" type="text/css" />
</head>

<body>

<div id="conteudo">


<form action="insere.php" method="post">
  
        <table width="100%" border="0">
                <tr>
                <td colspan="5"> </td>
        </tr>
                <tr>
                <td colspan="5" align="center">
                Selecione seu nome:
                <select name="nome" id="nome">
                        <option value="Selecione">Selecione</option>
						<option value="Selecione">Selecione</option>
                                <?php 
                
                                $cok = $_POST['ok'];
                                
                                /************************************************************************************* 
                                        Consulta do idparticipantes e nome dos participantes existentes e mostra no select 
                            **************************************************************************************/
                                $sql_nomes= "SELECT idparticipantes, nome from participantes where ok='1' order by nome asc";
                                $resultado = mysql_query($sql_nomes) or die (mysql_error());
                                
                                while($linha=mysql_fetch_array($resultado))
                                {
                                        echo("<option>" .$linha["nome"]."</option>");
                                }                               
                                ?>
                </select>
            </td>
        </tr>
        
            
            <select name="idoficinas" id="idoficinas" onChange="doBusca(this.options[this.selectedIndex].value)">
                        <option value="Selecione">Selecione</option>
                        <?php 

                                /***************************************************************************************
                                        Consulta do idparticipantes e nome dos participantes existentes e mostrar no select 
                                ****************************************************************************************/
                                $sql= "SELECT idoficinas, titulo from oficinas order by titulo asc";
                                $res = mysql_query($sql) or die (mysql_error());
                 
                 
                                while($row=mysql_fetch_array($res))
                                {
                                        //echo("<option>" .$row["titulo"]."</option>");
                                        //echo("<option value='".$row["idoficinas"]."'>" .$row["titulo"]."</option>");
                                        echo "<option value='".$row['idoficinas']."'>".$row['titulo']."</option>";
                                }                                               
                          ?>
                </select>
            
           
            
            </td>
                
            <td width="51%">
            
            <span class="carregando">Aguarde, carregando...</span>
                        <select name="idprofessores" id="idprofessores" >
                        <option value="">Escolha um Professor</option>
                        </select>
 
            

    <td width="12%"> </td>
    <td width="10%"> </td>
  </tr>
  <tr>
    <td colspan="2"> </td>
    <td> </td>
    <td colspan="2"><input type="submit" name="button" id="button" value="Enviar" /></td>
</form>
</div>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nana, já experimentou testar em outro navegador?

 

 

Sim....em todos os navegadores possiveis.....Firefox, IE, Safari, Opera e Chrome....em todos ele pega o ID correto mais não exibe o nome do professor no select....fica só c a msg de carregando....

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas e a parte dos testes por partes???

 

esqueci de avisar (não sei se precisa) os alertas deveriam aparecer quando você selecionasse um professor

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas e a parte dos testes por partes???

 

esqueci de avisar (não sei se precisa) os alertas deveriam aparecer quando você selecionasse um professor

 

Nao Nao! Pq o Onchange está no select de Oficinas.

Ela vai selecionar a oficina primeiro e vai aparecer o professor no outro select.

Ainda mais pq os alerts estão antes de chamar a página que vai fazer a pesquisa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

mas e a parte dos testes por partes???

 

esqueci de avisar (não sei se precisa) os alertas deveriam aparecer quando você selecionasse um professor

 

Nao Nao! Pq o Onchange está no select de Oficinas.

Ela vai selecionar a oficina primeiro e vai aparecer o professor no outro select.

Ainda mais pq os alerts estão antes de chamar a página que vai fazer a pesquisa.

 

Então qnd fiz parte por parte tb testei em todos os navegadores q falei....

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.