Ir para conteúdo

Arquivado

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

eu_Nana

Carregando dados em Select

Recommended Posts

comente estas 3 linhas

for (var i = 0; i < j.length; i++) {
options += '<option value="' + j[i].idprofessores + '">' + j[i].nome + '</option>';
}
$('#idprofessores').html(options).show();
$('.carregando').hide();

e adicione

alert(j.toSource());

execute com o Firefox e me diga o que aparece escrito na caixa de alerta

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao sei se você nao leu. Mas eu disso num post que aqui você chama a página com um parametro SEARCH

 $.getJSON('oficinas.ajax.php?search=',{idoficinas: $(this).val(), ajax: 'true'}, function(j){
e no php você ta colocando idoficinas

$idoficinas = mysql_real_escape_string( $_REQUEST['idoficinas'] );

É para ser $_REQUEST['search'];

 

:S

Compartilhar este post


Link para o post
Compartilhar em outros sites

realizei as alterações q vcs me indicaram....

 

<select name="idprofessores" id="idprofessores">
      			<option value="">Escolha um Professor</option>
			</select>
            
             <script src="http://www.google.com/jsapi"></script>
		<script type="text/javascript">
		  google.load('jquery', '1.3');
		</script>		

		<script type="text/javascript">
		$(function(){
			$('#idoficinas').change(function(){
				if( $(this).val() ) {
					$('#idprofessores').hide();
					$('.carregando').show();
					//$.getJSON('oficinas.ajax.php?search=',{titulo1: $(this).val(), ajax: 'true'}, function(j){
					$.getJSON('oficinas.ajax.php?search=',{idoficinas: $(this).val(), ajax: 'true'}, function(j){																					   
						var options = '<option value=""></option>';	
						//for (var i = 0; i < j.length; i++) {
							//options += '<option value="' + j[i].idprofessores + '">' + j[i].nome + '</option>';
						//}	
						//$('#idprofessores').html(options).show();
						//$('.carregando').hide();
						alert(j.toSource());
					});
				} else {
					$('#idprofessores').html('<option value="">– Escolha um Professor –</option>');
					
				}
			});
		});
		</script>

mais ainda continua só carregando

Compartilhar este post


Link para o post
Compartilhar em outros sites

remova o comentário do

$('.carregando').hide()

não subiu nenhuma msg de alerta?

é possível que seu controlador AJAX não esteja enviando uma resposta

 

 

troque

$.getJSON('oficinas.ajax.php?search=',{idoficinas: $(this).val(), ajax: 'true'}, function(j){

por

$.getJSON('oficinas.ajax.php',{"idoficinas":$(this).val(),"ajax": true},function(j){

 

e onde provavelmente vai estar:

$idoficinas = mysql_real_escape_string( $_REQUEST['search'] );

 

volte para

$idoficinas = mysql_real_escape_string( $_REQUEST['idoficinas'] );

Compartilhar este post


Link para o post
Compartilhar em outros sites

remova o comentário do

$('.carregando').hide()

não subiu nenhuma msg de alerta?

é possível que seu controlador AJAX não esteja enviando uma resposta

 

 

troque

$.getJSON('oficinas.ajax.php?search=',{idoficinas: $(this).val(), ajax: 'true'}, function(j){

por

$.getJSON('oficinas.ajax.php',{"idoficinas":$(this).val(),"ajax": true},function(j){

 

e onde provavelmente vai estar:

$idoficinas = mysql_real_escape_string( $_REQUEST['search'] );

 

volte para

$idoficinas = mysql_real_escape_string( $_REQUEST['idoficinas'] );

 

 

fiz essas alterações....mais continua do msm jeito....não mostra alerta....e nem no explorer mostra nenhum erro.....não sei mais oq fazer....:(/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu removi o comentário do

$('.carregando').hide()

não mostra nenhum alerta.....esse negócio já esta me deixando tonta.....

 

kkkkk a mim também.

topa começar, mais ou menos, desde o começo???

 

apague

$('#idoficinas').change(function(){
if( $(this).val() ) {
$('#idprofessores').hide();
$('.carregando').show();
//$.getJSON('oficinas.ajax.php?search=',{titulo1: $(this).val(), ajax: 'true'}, function(j){
$.getJSON('oficinas.ajax.php?search=',{idoficinas: $(this).val(), ajax: 'true'}, function(j){                                                                                                                                                                      
var options = '<option value=""></option>';     
//for (var i = 0; i < j.length; i++) {
//options += '<option value="' + j[i].idprofessores + '">' + j[i].nome + '</option>';
//}
//$('#idprofessores').html(options).show();
//$('.carregando').hide();
alert(j.toSource());
});
} else {
$('#idprofessores').html('<option value="">– Escolha um Professor –</option>');
}
});

por partes, se alguma coisa sair fora do previsto, basta me dizer 'A parte X acontece tal coisa', combinado?

parte 1

$('#idprofessores').change(function(){alert('parte 1 ok')}
deverá subir uma msg "parte 1 ok"

 

parte 2

$('#idprofessores').change(function(){
    alert($(this).val());
    $.getJSON('oficinas.ajax.php',function(json){alert('teste Ajax OK');});
}
deverão subir duas msg's, a primeira contendo o valor(id) da oficina selecionada, o segundo contendo "teste Ajax OK"

 

parte 3

$('#idprofessores').change(function(){
    $.getJSON('oficinas.ajax.php',{"oficina":$(this).val()},function(json){alert('Oficina selecionada: '+json);});
}

oficinas.ajax.php

 $idOficina = $_REQUEST['oficina'];
json_encode($idOficina);

 

deverá subir um alerta contendo "Oficina selecionada: {idOficina}"

 

parte4

$('#idprofessores').change(function(){
    $.getJSON('oficinas.ajax.php',{"oficina":$(this).val()},function(json){alert(json.toSource());});
}

 $idOficina = @mysql_real_escape_string($_REQUEST['oficina']);
$sql = "SELECT idprofessores, nome
                       FROM professores
                       WHERE oficinas_idoficinas=$idOficina
                       ORDER BY nome";

mysql_connect('localhost','root','') or die(mysql_error());
mysql_select_db('teste') or die(mysql_error());
$rs = mysql_query($sql) or die(mysql_error());

$output = array();
while(false !== ($row = mysql_fetch_assoc($rs))) $output[] = $row;
json_encode($output);

 

execute [oficinas.ajax.php] veja se há um retorno em branco

execute [oficinas.ajax.php?oficina=1] veja se há o retorno de uma matriz contendo o id do professor e o nome, como deseja

execute o arquivo principal e veja se sobe um alerta contendo algo semelhante ao exibido no segundo teste da oficinas.ajax.php

 

parte 5

$('#idprofessores').change(function(){
    $.getJSON('oficinas.ajax.php',{"oficina":$(this).val()},function(json){
        var html = '';
        for (i = 0; i < json.lenght; i++) html =+ '<option value="' + json[i].id +'">'+ json[i].nome + '</option>';
        $('#idprofessores').html(html);
    });
}

verifique se obtem o resultado desejado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha só....eu fiz parte por parte...como você indicou acima....não exibe nenhum alerta em nenhuma das partes....e na parte 1 ele reclama do $

 

veja:

 

<script src="http://www.google.com/jsapi"></script>
		<script type="text/javascript">
		  google.load('jquery', '1.3');
		</script>		

		<script type="text/javascript">
		$(function(){
				//parte 1
				$('#idprofessores').change(function(){alert('parte 1 ok')}
					
				//parte2
				$('#idprofessores').change(function(){
    				alert($(this).val());
    				$.getJSON('oficinas.ajax.php',function(json){alert('teste Ajax OK');});
					
				//parte3
				$('#idprofessores').change(function(){
    				$.getJSON('oficinas.ajax.php',{"oficina":$(this).val()},function(json){alert('Oficina selecionada: '+json);});}
					
				//parte4
				$('#idprofessores').change(function(){
    				$.getJSON('oficinas.ajax.php',{"oficina":$(this).val()},function(json){alert(json.toSource());});}
					
				//parte5
				$('#idprofessores').change(function(){
    				$.getJSON('oficinas.ajax.php',{"oficina":$(this).val()},function(json){
        			var html = '';
        			for (i = 0; i < json.lenght; i++) html =+ '<option value="' + json[i].id +'">'+ json[i].nome + '</option>';
        			$('#idprofessores').html(html);
    				});
			});
		
		</script>

oficina.ajax.php

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


	
	
	$idOficina = @mysql_real_escape_string($_REQUEST['oficina']);
$sql = "SELECT idprofessores, nome
                        FROM professores
                        WHERE oficinas_idoficinas=$idOficina
                        ORDER BY nome";

mysql_connect('localhost','root','') or die(mysql_error());
mysql_select_db('teste') or die(mysql_error());

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

$output = array();
while(false !== ($row = mysql_fetch_assoc($rs))) $output[] = $row;
json_encode($output);
	
	?>

E qnd tento carregar oficinas.ajax.php ou oficinas.ajax.php?oficina=1 ...ele abre uma janela pedindo para salvar o arquivo php. Eu to pirando já.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nana, era pra fazer parte por parte, e não todas juntas =)

 

E pode salvar o arquivo php e abrir com o bloco de notas. Acredito que não tenha problema nenhum com o ajax.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nana, era pra fazer parte por parte, e não todas juntas =)

 

E pode salvar o arquivo php e abrir com o bloco de notas. Acredito que não tenha problema nenhum com o ajax.php

 

 

Desculpaaa.....eu viajei agora..entendi q era para fazer tudo em um arquivo só.....eu to falando q isso ta me deixando louca....rsrs.....amanha eu faço essa correção.....volto a postar....mais uma vez valew...

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Nana, era pra fazer parte por parte, e não todas juntas =)

 

E pode salvar o arquivo php e abrir com o bloco de notas. Acredito que não tenha problema nenhum com o ajax.php

 

 

Desculpaaa.....eu viajei agora..entendi q era para fazer tudo em um arquivo só.....eu to falando q isso ta me deixando louca....rsrs.....amanha eu faço essa correção.....volto a postar....mais uma vez valew...

 

 

Olá....bom dia....

 

Fiz parte por parte....mais sem sucesso...veja...

 

parte 1

<select name="idprofessores" id="idprofessores">
      	<option value="">Escolha um Professor</option>
</select>
            
             <script src="http://www.google.com/jsapi"></script>
		<script type="text/javascript">
		  google.load('jquery', '1.3');
		</script>		

		<script type="text/javascript">
		$(function(){
				   //parte 1
				   $('#idprofessores').change(function(){alert('parte 1 ok')});
				   });

		</script>

O Parte 1 não mostra nenhuma msg de alerta.....:(/>

 

 

---------------------------------------------------------------------------------------------------

 

parte 2

<select name="idprofessores" id="idprofessores">
      			<option value="">Escolha um Professor</option>
			</select>
            
             <script src="http://www.google.com/jsapi"></script>
		<script type="text/javascript">
		  google.load('jquery', '1.3');
		</script>		

		<script type="text/javascript">
		$(function(){
				   
					
				   /*------------------------//parte2------------------------------*/
					$('#idprofessores').change(function()
					{
    					alert($(this).val())
    					$.getJSON('oficinas.ajax.php',function(json)
						{
							alert('teste Ajax OK')
						});
					});
					});

				/*-----------------------------------------------------------------*/

		</script>
Também sem nenhum alerta...

 

 

-----------------------------------------------------------------------------------------------------

 

parte 3

 

<select name="idprofessores" id="idprofessores">
      			<option value="">Escolha um Professor</option>
			</select>
            
             <script src="http://www.google.com/jsapi"></script>
		<script type="text/javascript">
		  google.load('jquery', '1.3');
		</script>		

		<script type="text/javascript">
		$(function(){
				   
				   
				   /*---------------------//parte3---------------------------------*/
				    $('#idprofessores').change(function()
					{
    					$.getJSON('oficinas.ajax.php',{"oficina":$(this).val()},function(json)
						{
							alert('Oficina selecionada: '+json);
						});
					});
					});
				   /*--------------------------------------------------------------*/
		</script>

 

 

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

	
	$idOficina = $_REQUEST['oficina'];
		
	$professores = array();

	$sql = "SELECT idprofessores, nome
			FROM professores
			WHERE oficinas_idoficinas=$idoficinas
			ORDER BY nome";
	$res = mysql_query( $sql );
	while ( $row = mysql_fetch_assoc( $res ) ) {
		$professores[] = array(
			'idprofessores'	=> $row['idprofessores'],
			'nome'	=> $row['nome'],
		);
	}


	echo( json_encode($idOficina) );

	?>

 

Não acontece nada

 

parte 4

<select name="idprofessores" id="idprofessores">
      			<option value="">Escolha um Professor</option>
			</select>
            
             <script src="http://www.google.com/jsapi"></script>
		<script type="text/javascript">
		  google.load('jquery', '1.3');
		</script>		

		<script type="text/javascript">
		$(function(){
				   
					
				   /*----------------------//parte4--------------------------------*/
				   
				  /* $('#idprofessores').change(function()
					{
    					$.getJSON('oficinas.ajax.php',{"oficina":$(this).val()},function(json)
						{
							alert(json.toSource());
						});
					});
					});*/
				   /*--------------------------------------------------------------*/
				   
		</script>

 

parte 5

<select name="idprofessores" id="idprofessores">
      			<option value="">Escolha um Professor</option>
			</select>
            
             <script src="http://www.google.com/jsapi"></script>
		<script type="text/javascript">
		  google.load('jquery', '1.3');
		</script>		

		<script type="text/javascript">
		$(function(){
				   
				   
				   /*-----------------------//parte5-------------------------------*/
				   	$('#idprofessores').change(function()
					{
    					$.getJSON('oficinas.ajax.php',{"oficina":$(this).val()},function(json)
						{
        					var html = '';
        					for (i = 0; i < json.lenght; i++) html =+ '<option value="' + json[i].id +'">'+ json[i].nome + '</option>';
        					$('#idprofessores').html(html);
    					});
					});
					});
				   /*--------------------------------------------------------------*/
		</script>

Eu não sei mais oq faço....tentei outras coisas aqui tb mais sem sucesso...pq os alertas não são mostrados?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sem jQuery.

 

ajax.js

<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("professor1")
    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.php?titulo="+tuf,true);

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

    xmlhttp.send(null)
}
</script>

Sua página

<select name="titulo1" id="titulo1"  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_oficinas= "SELECT idoficinas, titulo from oficinas order by titulo asc";
                                $res = mysql_query($sql_oficinas) or die (mysql_error());
                 
                 
                                while($row=mysql_fetch_array($res))
                                {
                                        //echo("<option>" .$row["titulo"]."</option>");
                                        echo("<option value=".$row["titulo"].">" .$row["titulo"]."</option>");
                                }                                               
                                ?>
                </select>
                        <select name="professor1" id="professor1">
                        <option value="">Selecione</option>
                   </select>

php

<?php
        header( 'Cache-Control: no-cache' );

        $con = mysql_connect( 'localhost', 'root', '' ) ;
        mysql_select_db( 'teste', $con );

        $titulo1 = $GET['titulo'] );

        $oficinas = array();

        $sql_oficinas = "SELECT professor
                        FROM oficinas
                        WHERE titulo= '$titulo1'
                        ORDER BY professor";
        $res = mysql_query( $sql_oficinas );
        while($arr = mysql_fetch_array($res))
        {
           $professores = $arr['professores'];
        }
        echo $professores;
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.....fiz a alteração q você sugeriu....ele esta pegando o nome do professor correto.....só q não exibe no select... e esta me dando esse erro: Erro: missing ; before statement

 

Veja:

 

formoficinas.php

<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 value="'.$row['idoficinas'].'">'.$row['titulo'].'</option>';
		  		}						
				?>
    		</select>
            
           
                        
            <span class="carregando">Aguarde, carregando...</span>
			<select name="idprofessores" id="idprofessores" >
      			<option value="">Escolha um Professor</option>
			</select>
            
            
            <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("nome")
            while(c.options.length>0)c.options[0]=null
            //Transforma a lista de cidades JSON em Javascript
            var nome = eval((xmlhttp.responseText))
            //popula o select com a lista de cidades obtida
            for(var i=0;i<nome.length;i++){
                nome[i]=unescape(nome[i])
                c.options[c.options.length]=new Option(nome[i],nome[i+1])
                                i++;
            }
        }
    }

    xmlhttp.send(null)
}
</script>

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;

Ele mostra no select...a msg de aguarde...ele pega o nome correto do professor só q não exibe no select...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esqueci de te falar, esse script você coloca entre as tags <head></head>

E outra, você mudou o nome de uma variavel e nao mudou as outras tbm. Pegue esse código abaixo que eu arrumei pa você.

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

E no PHp pode tirar essa linha:

       header('Content-Type: application/json; charset="utf-8"', true);

Compartilhar este post


Link para o post
Compartilhar em outros sites

msm jeito...ele exibe no echo $nome; o nome do professor mais não no select.....quero saber como faço para ver oq ele esta vindo em "idprofessores" q esta no script.....

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.