Ir para conteúdo

Arquivado

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

eu_Nana

Carregando dados em Select

Recommended Posts

Olá pessoal,

 

Estou precisando de uma ajuda.....tenho uma tabela no BD com os seguintes campos: idoficinas, titulo e professor.

 

Tenho um form com 8 selects e pego os dados do BD, preciso fazer o seguinte: qnd selecionar o titulo da oficina em um select no outro select deve exibir o nome do professor....eu fiz porém qnd seleciono uma oficina o outro select some.....não sei oq fiz de errado......vejam o código:

 

form.php

<form action="insere_oficinas.php" method="post">
    
        <table width="100%" border="0">
                <tr>
                <td colspan="5"> </td>
        </tr>
                <tr>
                <td colspan="5" align="center">
                
            </td>
        </tr>
                <tr>
                <td colspan="2"> </td>
                <td colspan="3"> </td>
                </tr>
                <tr>
                <td colspan="5">
                        
            </td>
        </tr>
  
                <tr>
                <td colspan="5"> </td>
        </tr>
                <tr>
                <td width="8%">1º -</td>
                <td width="19%">
            <select name="titulo1" id="titulo1">
                        <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>");
                                }                                               
                                ?>
                </select>
            
            <script src="http://www.google.com/jsapi"></script>
                <script type="text/javascript">
                  google.load('jquery', '1.3');
                </script>               

                <script type="text/javascript">
                $(function(){
                        $('#titulo1').change(function(){
                                if( $(this).val() ) {
                                        $('#professor1').hide();
                                        $('.carregando').show();
                                        $.getJSON('oficinas.ajax.php?search=',{titulo1: $(this).val(), ajax: 'true'}, function(j){
                                                var options = '<option value=""></option>';     
                                                for (var i = 0; i < j.length; i++) {
                                                        options += '<option value="' + j[i].professor1 + '">' + j[i].professor + '</option>';
                                                }       
                                                $('#professor1').html(options).show();
                                                $('.carregando').hide();
                                        });
                                } else {
                                        $('#professor1').html('<option value="">– Escolha um estado –</option>');
                                }
                        });
                });
                </script>
            
            </td>
                
            <td width="51%">
                        <select name="professor1" id="professor1">
                        <option value="">Selecione</option>
                        <!--< 
                                /******************************************************************* 
                                        Consulta do idparticipantes e nome dos participantes existentes
                                ********************************************************************/
                                $sql_oficinas1= "SELECT idoficinas, professor from oficinas order by professor asc";
                                $res1 = mysql_query($sql_oficinas1) or die (mysql_error());

                                while($row1=mysql_fetch_array($res1))
                                {
                                        echo("<option>" .$row1["professor"]."</option>");
                                }                       
                                ?>-->
                        </select>
                        </td>
                <td colspan="2"> </td>
                </tr>
                <tr>
                <td>2º - </td>
                
            <td>
                        <select name="titulo2" id="titulo2">
                        <option value="Selecione">Selecione</option>
                                <? 
                
                                /*********************************************************************************************
                                        Consulta do idparticipantes e nome dos participantes existentes e mostrar na caixa 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>");
                                }               
                                ?>
                        </select>
                        </td>
                
            <td>
                <select name="professor2" id="professor2">
                        <option value="Selecione">Selecione</option>
                        <? 
                
                                /******************************************************************* 
                                        Consulta do idparticipantes e nome dos participantes existentes
                                ********************************************************************/
                                $sql_oficinas3= "SELECT idoficinas, professor from oficinas order by professor asc";
                                $res3 = mysql_query($sql_oficinas3) or die (mysql_error());

                                while($row3=mysql_fetch_array($res3))
                                {
                                        echo("<option>" .$row3["professor"]."</option>");
                                }
                                ?>
                </select>
            </td>
                
            <td colspan="2"> </td>
                </tr>
                
        <tr>
                <td>3º - </td>
                <td>
                        <select name="titulo3" id="titulo3">
                        <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>");
                                }                               
                                ?>
                        </select>
                        </td>
                
            <td>
                <select name="professores3" id="professores3">
                        <option value="Selecione">Selecione</option>
                        <? 
                
                                /******************************************************************* 
                                        Consulta do idparticipantes e nome dos participantes existentes
                                ********************************************************************/
                                $sql_oficinas5= "SELECT idoficinas, professor from oficinas order by professor asc";
                                $res5 = mysql_query($sql_oficinas5) or die (mysql_error());

                                while($row5=mysql_fetch_array($res5))
                                {
                                        echo("<option>" .$row5["professor"]."</option>");
                                }                       
                                ?>
                </select>
            </td>
                <td colspan="2"> </td>
                </tr>
                
        <tr>
                <td>4º - </td>
                <td>
                <SELECT NAME="titulo4" id="titulo4">
                        <option value="Selecione">Selecione</option>
                        <? 
                                
                                /*** Consulta do idparticipantes e nome dos participantes existentes e mostrar na caixa 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>");
                                }                               
                                ?>
                        </select>
</td>
    <td>
    <select name="professores4" id="professores4">
        <option value="Selecione">Selecione</option>
      <? 
                /******************************************************************* 
                        Consulta do idparticipantes e nome dos participantes existentes
                ********************************************************************/
                $sql_oficinas7= "SELECT idoficinas, professor from oficinas order by professor asc";
                $res7 = mysql_query($sql_oficinas7) or die (mysql_error());
                echo $res7;
                while($row7=mysql_fetch_array($res7))
                  {
                                echo $row7["professor"];
                                echo("<option>" .$row7["professor"]."</option>");
                        }
                        
/***********************************************************************/                               
?>
      </select>     </td>
    <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>
  </tr>
</table>

</form>

oficinas.ajax.php

 

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

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

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

        $oficinas = array();

        $sql_oficinas = "SELECT idoficinas, professor
                        FROM oficinas
                        WHERE titulo=$titulo1
                        ORDER BY professor";
        $res = mysql_query( $sql_oficinas );
        while ( $row = mysql_fetch_assoc( $res ) ) {
                $oficinas[] = array(
                        'titulo'        => $row['titulo'],
                        'professor'                     => $row['professor'],
                );
        }

        echo( json_encode( $oficinas ) );
        
        ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual select que some ? O do professor ?

 

O select do professor...oq eu quero fazer é: qnd selecionar uma oficina...deve carregar no outro select o nome do professor que corresponde a essa oficina. Não oq esta errado noq eu fiz....

 

Entedeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem que por um Value no option do titulo

 echo("<option value=".$row["titulo"].">" .$row["titulo"]."</option>");

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem que por um Value no option do titulo

 echo("<option value=".$row["titulo"].">" .$row["titulo"]."</option>");

 

Eu fiz oq você disse ....agora o select onde deve exibir o nome do professor de acordo com o titulo escolhido não some....mais não exibe nada...fica no "Selecione"....pode ser alguma coisa no ajax....o código do oficinas.ajas.php esta postado tb....

 

Olha como esta o código agora....

 

form.php

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


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

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

<body>

<div id="conteudo">

<form action="insere_oficinas.php" method="post">
   
	<table width="100%" border="0">
  		<tr>
    		<td colspan="5"> </td>
    	</tr>
  		<tr>
    		<td colspan="5" align="center">
    		
            </td>
    	</tr>
  		<tr>
    		<td colspan="2"> </td>
    		<td colspan="3"> </td>
  		</tr>
  		<tr>
    		<td colspan="5">
    			
            </td>
    	</tr>
  
  		<tr>
    		<td colspan="5"> </td>
    	</tr>
  		<tr>
    		<td width="8%">1º -</td>
    		<td width="19%">
            <select name="titulo1" id="titulo1">
    			<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>
            
            <script src="http://www.google.com/jsapi"></script>
		<script type="text/javascript">
		  google.load('jquery', '1.3');
		</script>		

		<script type="text/javascript">
		$(function(){
			$('#titulo1').change(function(){
				if( $(this).val() ) {
					$('#professor1').hide();
					$('.carregando').show();
					$.getJSON('oficinas.ajax.php?search=',{titulo1: $(this).val(), ajax: 'true'}, function(j){
						var options = '<option value=""></option>';	
						for (var i = 0; i < j.length; i++) {
							options += '<option value="' + j[i].professor1 + '">' + j[i].professor + '</option>';
						}	
						$('#professor1').html(options).show();
						$('.carregando').hide();
					});
				} else {
					$('#professor1').html('<option value="">– Escolha um estado –</option>');
				}
			});
		});
		</script>
            
            </td>
    		
            <td width="51%">
			<select name="professor1" id="professor1">
      			<option value="">Selecione</option>
      			<?php
				/******************************************************************* 
					Consulta do idparticipantes e nome dos participantes existentes
				********************************************************************/
				$sql_oficinas1= "SELECT idoficinas, professor from oficinas order by professor asc";
				$res1 = mysql_query($sql_oficinas1) or die (mysql_error());

				while($row1=mysql_fetch_array($res1))
		  		{
					echo("<option>" .$row1["professor"]."</option>");
				}			
				?>
			</select>
			</td>
    		<td colspan="2"> </td>
  		</tr>
  		<tr>
    		<td>2º - </td>
    		
            <td>
			<select name="titulo2" id="titulo2">
       			<option value="Selecione">Selecione</option>
				<? 
		
				/*********************************************************************************************
Consulta do idparticipantes e nome dos participantes existentes e mostrar na caixa 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>");
				}		
				?>
			</select>
			</td>
    		
            <td>
      		<select name="professor2" id="professor2">
        		<option value="Selecione">Selecione</option>
      			<? 
		
				/******************************************************************* 
					Consulta do idparticipantes e nome dos participantes existentes
				********************************************************************/
				$sql_oficinas3= "SELECT idoficinas, professor from oficinas order by professor asc";
				$res3 = mysql_query($sql_oficinas3) or die (mysql_error());

				while($row3=mysql_fetch_array($res3))
		  		{
					echo("<option>" .$row3["professor"]."</option>");
				}
				?>
      		</select>
            </td>
    		
            <td colspan="2"> </td>
  		</tr>
  		
        <tr>
    		<td>3º - </td>
    		<td>
			<select name="titulo3" id="titulo3">
    			<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>");
				}				
				?>
			</select>
			</td>
    		
            <td>
      		<select name="professores3" id="professores3">
        		<option value="Selecione">Selecione</option>
      			<? 
		
				/******************************************************************* 
					Consulta do idparticipantes e nome dos participantes existentes
				********************************************************************/
				$sql_oficinas5= "SELECT idoficinas, professor from oficinas order by professor asc";
				$res5 = mysql_query($sql_oficinas5) or die (mysql_error());

				while($row5=mysql_fetch_array($res5))
		  		{
					echo("<option>" .$row5["professor"]."</option>");
				}			
				?>
      		</select>
            </td>
    		<td colspan="2"> </td>
  		</tr>
  		
        <tr>
    		<td>4º - </td>
    		<td>
    		<SELECT NAME="titulo4" id="titulo4">
           		<option value="Selecione">Selecione</option>
      			<? 
				
				/*** Consulta do idparticipantes e nome dos participantes existentes e mostrar na caixa 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>");
				}				
				?>
			</select>
</td>
    <td>
    <select name="professores4" id="professores4">
        <option value="Selecione">Selecione</option>
      <? 
		/******************************************************************* 
			Consulta do idparticipantes e nome dos participantes existentes
		********************************************************************/
		$sql_oficinas7= "SELECT idoficinas, professor from oficinas order by professor asc";
		$res7 = mysql_query($sql_oficinas7) or die (mysql_error());
		echo $res7;
		while($row7=mysql_fetch_array($res7))
		  {
				echo $row7["professor"];
				echo("<option>" .$row7["professor"]."</option>");
			}
			
/***********************************************************************/				
?>
      </select>     </td>
    <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>
  </tr>
</table>

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha

Não sei se é isso, porquê não entendo de jQuery.

Mas aqui:

echo("<option value=".$row["titulo"].">" .$row["titulo"]."</option>");

Faltou aspas simples no value.

echo("<option value='".$row["titulo"]."'>" .$row["titulo"]."</option>");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha

Não sei se é isso, porquê não entendo de jQuery.

Mas aqui:

echo("<option value=".$row["titulo"].">" .$row["titulo"]."</option>");

Faltou aspas simples no value.

echo("<option value='".$row["titulo"]."'>" .$row["titulo"]."</option>");

 

Olá...eu fiz oq você fez....mais o select onde deve mostrar o nome do professor...voltou a sumir.....qnd seleciono o titulo o select do professor desaparece...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi...

Outra coisa, o titulo é texto ou numero ? Se for texto no seu select:

 $sql_oficinas = "SELECT idoficinas, professor
                        FROM oficinas
                        WHERE titulo=$titulo1
                        ORDER BY professor";

você tem que por aspas no $titulo1

 $sql_oficinas = "SELECT idoficinas, professor
                        FROM oficinas
                        WHERE titulo = '$titulo1'
                        ORDER BY professor";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi...

Outra coisa, o titulo é texto ou numero ? Se for texto no seu select:

 $sql_oficinas = "SELECT idoficinas, professor
                        FROM oficinas
                        WHERE titulo=$titulo1
                        ORDER BY professor";

você tem que por aspas no $titulo1

 $sql_oficinas = "SELECT idoficinas, professor
                        FROM oficinas
                        WHERE titulo = '$titulo1'
                        ORDER BY professor";

fiz a correção...porém continua do msm jeito....o select some...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opaaa

owieowiew

Outra coisa, eu vejo aos poucos, processo aqui é lento

pós carnaval dá nisso

 

aqui:

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

Nao eh $_REQUEST['titulo1'];

Por que ?

 

No seu jQuery você ta chamando o link oficinas.php?search, entao é:

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

moça, envia o mime-type correto

 

header( 'Content-type: application/xml; charset="utf-8"', true );
você está trabalhando com JSON, não XML

 

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

moça, envia o mime-type correto

 

header( 'Content-type: application/xml; charset="utf-8"', true );
você está trabalhando com JSON, não XML

 

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

realizei a alteração....mais continua sumindo o select

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opaaa

owieowiew

Outra coisa, eu vejo aos poucos, processo aqui é lento

pós carnaval dá nisso

 

aqui:

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

Nao eh $_REQUEST['titulo1'];

Por que ?

 

No seu jQuery você ta chamando o link oficinas.php?search, entao é:

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

?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tira as funções .hide() do jQuery

 

tirei as funções .hide()....agora o select não some.....mais fica estatico......qnd seleciono o titulo não exibe o nome do professor correspondente.....tenho q selecionar manual....

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas ele lista/atualiza o select de professores corretamente????

 

como eu "puxo" td do BD...qnd carrego a página....ele exibe os dois selects o select titulo com todos os titulos e o select professor com todos os nomes dos professores......

Compartilhar este post


Link para o post
Compartilhar em outros sites

e só existe um professor pra cada título, e você quer que, ao selecionar um título, o professor correspondente seja automaticamente selecionado, ok?

 

você vai enviar via AJAX apenas o nome(id) do <option> que contém o nome do professor correspondente

 

[oficina][professor]
 artes    João
 violão   Ricardo
 dança    Ana

professores
[id][nome]
1    João
2    Ricardo
3    Ana

ao enviar "artes" recebe apenas 1, que é o ID correspondente ao João

$.getJSON('ajax.php',{"oficina":"artes"},function(resposta){alert(resposta)});

deve subir uma caixa de alerta contendo "1", apenas isso.

agora trabalhe a função para que ela faça o que realmente é desejado:

 

...artes"},function(resposta){
$('#professores option').removeAttr('selected');
$('#professores option[value='+resposta+']).attr('selected','selected');
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz uma alteração.....agora...ele exibe a mgs de carregando.....porém esta dando um erro: No log de erros do firefox ele me mostra a seguinte msg:

 

Erro: formatado incorretamente 2<br />....

 

Ele pega o id correto nesse caso o id=2 e aponta para o <br/>

 

Meu código esta assim:

 

form.oficinas.php

<select name="idoficinas" id="idoficinas">
    			<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>
            
             <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();
					});
				} else {
					$('#idprofessores').html('<option value="">– Escolha um Professor –</option>');
					
				}
			});
		});
		</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 = mysql_real_escape_string( $_REQUEST['idoficinas'] );
	
	
	echo $idoficinas;
	
	$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( $professores ) );
	
	?>

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.