ONTheBankz Posted February 28, 2022 at 04:13 PM Report Share #625492 Posted February 28, 2022 at 04:13 PM (edited) Boa Tarde Pessoal, eu tenho um formulário de marcar faltas a alunos e quero que ao escolher a turma num select, consiga guardar a opção escolhida, para ao escolher os alunos, aparecer só os da turma escolhida em cima Eu vou buscar os valores do select á BD na tabela aluno onde tem a turma e os respetivos alunos. Agora como é que posso fazer ao por exemplo: escolher a turma 11A, colocar o valor escolhido numa variável e depois no select dos alunos, executar uma query do género "SELECT cod_aluno FROM aluno WHERE turma = $variável" <?php $ligacao = new mysqli("localhost", "root", "", "escola"); $ligacao->set_charset("utf8"); $result = "SELECT DISTINCT cod_turma FROM aluno"; $resultado = mysqli_query($ligacao, $result); while($row = mysqli_fetch_assoc($resultado)) { echo '<option value="'.$row['cod_turma'].'"> '.$row['cod_turma'].' </option>'; } ?> </select> <br></td></tr><tr> <td><b>Aluno:<z class="z">*</td> <td><select class="combo" size=1 name="Aluno" id="Aluno"> <option value=""></option> <?php $ligacao = new mysqli("localhost", "root", "", "escola"); $result = "SELECT DISTINCT cod_aluno, nome FROM aluno"; $resultado = mysqli_query($ligacao, $result); while($row = mysqli_fetch_assoc($resultado)) { echo '<option value="'.$row['cod_aluno'].'"> '.$row['nome'].' </option>'; } ?> </select> Eu já tentei fazer isto mas sem sucesso <script> var select = document.getElementById("Turma"); var variavel = ''; select.onchange = function(){ variavel = this.value; console.log(variavel); } </script> <?php $valor = "<script>document.write(variavel)</script>"; ?> Edited February 28, 2022 at 04:22 PM by ONTheBankz Link to comment Share on other sites More sharing options...
washalbano Posted March 1, 2022 at 01:44 AM Report Share #625495 Posted March 1, 2022 at 01:44 AM Boa tarde! Escrevi um exemplo testável e verificável pra vc conferir: https://we.tl/t-cAdbyDxnGl Tb coloquei uma cópia aqui: https://replit.com/@washalbano/Select-Fill-Another#index.html Mas acho mais difícil de copiar Link to comment Share on other sites More sharing options...
ONTheBankz Posted March 2, 2022 at 10:05 AM Author Report Share #625497 Posted March 2, 2022 at 10:05 AM Obrigado pela ajuda mas já consegui de outra forma. Index.php <?php $select = $conexao->prepare("SELECT DISTINCT cod_turma FROM aluno"); $select->execute(); $fetchAll = $select->fetchAll(); foreach($fetchAll as $turmas) { echo '<option value="'.$turmas['cod_turma'].'">'.$turmas['cod_turma'].'</option>'; } ?> </select> <br></td></tr><tr> <td><b>Aluno:<z class="z">*</td> <td> <select class="combo" size=1 name="aluno" id="aluno"></select> <script> $("#turma").on("change",function(){ var idTurma = $("#turma").val(); $.ajax({ url: 'pega_alunos.php', type: 'POST', data:{id:idTurma}, beforeSend: function(){ $("#aluno").html("Carregando..."); }, success: function(data) { $("#aluno").html(data); }, error: function(data) { $("#aluno").html("Houve um erro ao carregar..."); } }); }); </script> pega_alunos.PHP <?php $conexao = new PDO("mysql:host=localhost;dbname=escola","root",""); $conexao->exec('SET CHARACTER SET utf8'); $pegaAlunos = $conexao->prepare("SELECT nome FROM aluno WHERE cod_turma='".$_POST['id']."'"); $pegaAlunos->execute(); $fetchAll = $pegaAlunos->fetchAll(); foreach($fetchAll as $aluno) { echo '<option>'.$aluno['nome'].'</option>'; } Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now