Jump to content
Flavio Nash

[Resolvido] Dúvida para gerar select

Recommended Posts

Flavio Nash

Olá galera tow com uma dúvida não sei como fazer pra pegar a escolha de um select no mesmo form para gerar outro select dependendo da escolha do usuário, tipo não sei como pegar o valor do select na mesma página, essa é minha dúvida.

Nesse código gostaria de pegar a variável do select turma para gerar os dados do select aluno uso o metodo POST mas da erro pois isso daria se recebesse o mesmo em outra página. Desde já agradeço a todos.

<form id="form1" method="post" action="cadastro_notaControl.php">
<select name="turma">
<option selected="selected">Selecione a turma...</option>
<?php
for($i = 0; $i < sizeof($listagemturmas); $i++){
?>
<?php echo("<option value='".$listagemturmas[$i]->id."'>".$listagemturmas[$i]->ensino. " " . $listagemturmas[$i]->serie."</option>");?>
<?php } ?><!--end for-->
</select><br/><br />
 
<?php
$turma_id = $_POST['turma'];
$turma = $daoturmas->buscaTurma($turma_id);
$listagem = $daoalunos->listaAlunosPorTurma($turma_id);
$listagemdisciplinas = $daodisciplinas->listaDisciplinas();
?>
Aluno:<br />
<select name="aluno">
<option selected="selected">Selecione a aluno...</option>
<?php
for($i = 0; $i < sizeof($listagem); $i++){
?>
<?php echo("<option value='".$listagem[$i]->id."'>".$listagem[$i]->nome."</option>");?>
<?php } ?><!--end for-->
</select><br/>
 

Share this post


Link to post
Share on other sites
I-NOZex

o melhor seria fazeres um request por ajax (jquery pode dar uma valente ajuda nisso)

pois assim, o js criava logo dinamicamente a nova selectbox, ou imaginado que ja exista, pode preenche-la e tirar o disabled

mas se fizeres algo como:

if( isset($_POST['turma']) ){
//faz a query...
echo "<select ...>";
 foreach ($results as $option){
	 echo "<option ... value ... />";
 }
echo "</select>";
}

deve fazer o trabalho

Edited by I-NOZex

B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net

Share this post


Link to post
Share on other sites
Flavio Nash

Não consegui resolver o problema fiz como postado mas o select não passa o id da turma gostaria de saber como passar ele. Vou postar meu código

esse é o form

<form id="form1" method="post" action="cadastro_notaControl.php">

 <select name="turma">
	 <option selected="selected">Selecione a turma...</option>
 <?php
 for($i = 0; $i < sizeof($listagemturmas); $i++){
	 ?>
	 <?php echo("<option value='".$listagemturmas[$i]->id."'>".$listagemturmas[$i]->ensino. " " . $listagemturmas[$i]->serie."</option>");?>
	 <?php } ?><!--end for-->
 </select><br/>


 Aluno:<br />
 <select name="aluno">
	 <option value="0">Selecione a aluno...</option>
 </select><br/>

Aqui segue o que fiz segundo o tutorial postado anteriormente se consegui me ajudar agradeço.

<?php
require 'conexao_class.php';
require 'dao_aluno_class.php';
require 'aluno_class.php';

$daoaluno = new DaoAluno();
$daoaluno->getConexao();


$turma_id = $_GET['turma_id'];
$lista = $daoaluno->listaAlunosPorTurma($turma_id);
 for($i = 0; $i < sizeof($lista); $i++){
 ?>
 <?php echo "<option value='".$lista[$i]->id."'>".$lista[$i]->nome."</option>";?>
 <?php } ?><!--end for-->
?>

Edited by Rui Carlos
GeSHi

Share this post


Link to post
Share on other sites
NunoDinis

Estás a invocar o caminho do ficheiro php e da libraria do jquery corretamente ?


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Share this post


Link to post
Share on other sites
Flavio Nash

Vou colocar os pontos do meu projeto.

partes da página do formulário.

<!DOCTYPE html>
<html lang="pt-br">
 <head>
  <title>Cadastrar Turma</title>
  <meta charset="UTF-8" />

 <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen">
 <link href="style.css" rel="stylesheet" media="screen">
 <script type="text/javascript" src="js/script2.js">
 </script>
 <script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
 <script>
  $(document).ready(function(){
   $('#turma').change(function(){
    $('#aluno').load('alunos.php?turma_id='+$('#turma').val() );
   });
 });

 </script>
 </head>
 <body>

Parte onde deveria gerar o select. Lembrando que é o segundo select que precisa ser gerado

Escolha a turma do aluno:<br />
 <form id="form1" method="post" action="cadastro_notaControl.php">

   <select name="turma">
	    <option selected="selected">Selecione a turma...</option>
   <?php
   for($i = 0; $i < sizeof($listagemturmas); $i++){
	  ?>
	  <?php echo("<option value='".$listagemturmas[$i]->id."'>".$listagemturmas[$i]->ensino. " " . $listagemturmas[$i]->serie."</option>");?>
	  <?php } ?><!--end for-->
  </select><br/>


  Aluno:<br />
   <select name="aluno">
	    <option value="0">Selecione a aluno...</option>
  </select><br/>

    Bimestre:<br />
  <select name="bimestre">
   <option value="1">1º Bimestre</option>
   <option value="1">2º Bimestre</option>
   <option value="1">3º Bimestre</option>
   <option value="1">4º Bimestre</option>
  </select><br/>

Página alunos.php onde a função javascript passa o id da turma pra listar os alunos

<?php
   require 'conexao_class.php';
require 'dao_aluno_class.php';
require 'aluno_class.php';

$daoaluno = new DaoAluno();
$daoaluno->getConexao();


   $turma_id = $_GET['turma_id'];
$lista  = $daoaluno->listaAlunosPorTurma($turma_id);
  for($i = 0; $i < sizeof($lista); $i++){
   ?>
 <?php echo "<option value='".$lista[$i]->id."'>".$lista[$i]->nome."</option>";?>
 <?php } ?><!--end for-->
?>

Share this post


Link to post
Share on other sites
NunoDinis

é provável que o ID nem esteja a passar sequer.

Coloca nos selects id, ao invés de nome.

<select id="aluno">
...
</select>
<select id="turma">
...
</select>

Utiliza

 na tag, para que possamos perceber melhor o código.
  • Vote 1

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.