Jump to content

[Resolvido] Dúvida para gerar select


Flavio Nash

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/>
Link to post
Share on other sites

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
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-->
?>
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-->
?>
Link to post
Share on other sites

é 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

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.