Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Duvida com menu dinâmico.


JeanC

Pergunta

Eu tenho 2 banco, um deles contendo nomes de cursos e o outro contendo o cadastro de varias pessoas para os determinados cursos.

Agora estou fazendo uma pagina, onde ira buscar essas pessoas cadastradas, e nessa pagina eu gostaria de colocar um menu filtrando apenas o curso que eu gostaria de visualizar.

Usei o seguinte código para criar o menu que esta buscando os cursos pré-cadastrados.

<?
echo '<select name="cursos" class="textoEs">';
$q='select * from cursos order by name ASC';
$v=mysql_query($q);
while($row=mysql_fetch_object($v)){
echo '<option value="'.$row->id.'">';
echo $row->name.'</option>';
}
echo '</select>';
?>

Mas agora a real duvida, eu preciso que a pagina de um “reload” e mostre as pessoas que se cadastraram no curso que foi marcado no menu.

Minha pouca experiência em programação deixa meus termos meio que “pobres”, mas gostaria humildemente pedir ajuda das pessoas mais experientes que freqüentam o fórum.

Desde já, Obrigado.

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

O que você pode fazer ai é colocar um form e um botão, ai quando o cara selecionar o que quer no menu ele clica no botão e submete o form com a informação, ai você resgata e busca os dados no BD...

Caso você queira do modo como falou (ao seleciona o ítem no select), isso envolve javascript e o evento onchange...

Link para o comentário
Compartilhar em outros sites

  • 0
O que você pode fazer ai é colocar um form e um botão, ai quando o cara selecionar o que quer no menu ele clica no botão e submete o form com a informação, ai você resgata e busca os dados no BD...

Caso você queira do modo como falou (ao seleciona o ítem no select), isso envolve javascript e o evento onchange...

Ate nem tinha pensando na hipótese de fazer da maneira que você falou no 1º exemplo, me parece meio simples, vou criar aqui e postar a solução mais tarde.

Agora gostaria de pedir outra ajuda, você poderia citar outro termo que pode ajudar no código JS?

Caso atinja êxito, irei postar o código para outras pessoas com duvida no mesmo assunto.

Obrigado,

Jean Carlo.

Link para o comentário
Compartilhar em outros sites

  • 0
Ai tem um exemplo de select com onchange...

Seguindo esse exemplo eu chegaria ao resultado, mas eu teria que criar varias paginas, cada uma para um curso. Eu gostaria de usar o ID do próprio curso,

Exemplo -

Banco cursos.

1 - Java Básico

2 - Java Web J2EE

3 - Java para PDAs

Banco inscritos.

1 - Jean, Grupo_id 1 (Java Básico)

2 - Eserra, Grupo_id 1 (Java Básico)

3- Joao, Grupo_id 2 (Java Web J2EE)

Ou seja, eu teria apenas 1 pagina de retorno, caso o select fosse marcado a opção “Java Básico”, iria aparecer a minha e a inscrição do ESerra, filtrando os outros cadastros.

Conhece alguma solução? Gostaria apenas de um caminho, pois código pronto eu não iria aprender.

Obrigado.

Jean Carlo

Editado por JeanC
Link para o comentário
Compartilhar em outros sites

  • 0

Cheguei ao seguinte codigo, mas ainda não consegui finalizar o assunto.

<table>
<tr>
<td>
<form action="" method="post">
<input type="hidden" name="ativar" value="1">
<select name="cursos" class="textoEs" onchange="form.submit()">
<?
$sql = 'select * from cursos ORDER BY id_curso DESC';
$exe = mysql_query($sql);

    while($linha = mysql_fetch_array($exe)){
        echo "<option value=\"".$linha['id_curso']."\">";
        echo $linha['cursos']."</option>";
    }
    
?>
</select>
</form>
<br>
</td>
</tr>
</table>

<?
if(isset($_POST["ativar"])){

$sql = "SELECT * FROM alunos WHERE curso='{$curso}' ORDER BY nome ASC";
$exe = mysql_query($sql);

    while($linha = mysql_fetch_array($exe)){
        echo $linha['nome']. "<br>";
        
    }
    
}
?>

Esse codigo da o seguinte erro:

Notice: Undefined variable: curso in c:\arquivos de programas\easyphp1-8\www\cursos.php on line 142

Caso alguém possa ajuda eu agradeço

Minha pouca experiência deixa meus argumentos, meio que “Simples”. Mas conto com a colaboração de todos.

Obrigado mais uma vez.

Jean Carlo.

Link para o comentário
Compartilhar em outros sites

  • 0

A variável curso não existe.... note em primeiro lugar que o nome do select é cursos, e que antes da query, você deve resgatar o valor vindo do POST...

[....]
if(isset($_POST["ativar"])){
$curso = $_POST['cursos'];
$sql = "SELECT * FROM alunos WHERE curso='{$curso}' ORDER BY nome ASC";
[....]

Link para o comentário
Compartilhar em outros sites

  • 0
A variável curso não existe.... note em primeiro lugar que o nome do select é cursos, e que antes da query, você deve resgatar o valor vindo do POST...

[....]
if(isset($_POST["ativar"])){
$curso = $_POST['cursos'];
$sql = "SELECT * FROM alunos WHERE curso='{$curso}' ORDER BY nome ASC";
[....]
Sim, Obvio. Fiz conforme mencionado, e:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\arquivos de programas\easyphp1-8\www\cursos.php on line 146
Onde a linha 146 é:
while($linha = mysql_fetch_array($exe)){

:huh:

Link para o comentário
Compartilhar em outros sites

  • 0

Sempre que aparecer esse tipo de erro, coloque OR DIE(mysql_error()), assim o próprio mysql informa, e note que o problema não é nessa linha e sim no argumento, e o argumento é a query...

$exe = mysql_query($sql) OR DIE (mysql_error());

Link para o comentário
Compartilhar em outros sites

  • 0
Sempre que aparecer esse tipo de erro, coloque OR DIE(mysql_error()), assim o próprio mysql informa, e note que o problema não é nessa linha e sim no argumento, e o argumento é a query...

$exe = mysql_query($sql) OR DIE (mysql_error());

Localizei o erro, e já solucionei, obrigado pela paciência que você esta tendo com esse caso.

Agora ele esta funcionando “Perfeitamente”.

Só que ele não imprime nada na tela, ele da o reload após escolher o curso, mas não mostra resultado algum.

Caso você tenha alguma idéia porque isso esta acontecendo, por favor, diga para nós.

Enquanto isso “Luto” por aqui.

Obs: Se der mude o nome do Tópico, coloque “Filtro de dados usando Select”, assim ajudara mais pessoa, pois esse assunto é bem procurado.

Obrigado,

Jean Carlo.

Link para o comentário
Compartilhar em outros sites

  • 0

Veja quantos resultado estão retornando com o mysql_num_rows... se for zero é porque não tem nada mesmo, caso contrário ai verifique se a coluna do BD realmente se chama nome... se realmente for, troque o $linha... por print_r($linha) para imprimir tudo de uma vez (só pra debugar).

Link para o comentário
Compartilhar em outros sites

  • 0

Aew,

Finalmente funcionou.

Acontece que o:

$curso = $_POST['cursos'];
Estava retornando o id_curso (normal). E no Comando eu tava usando:
$sql = "SELECT * FROM inscritos WHERE curso='{$curso}' ORDER BY nome ASC";
Pois ficaria 1 = '{$curso}' e na minha coluna curso, não existe um curso chamado “1”. Foi apenas substituir o comando sql por:
$sql = "SELECT * FROM inscritos WHERE id_curso='{$curso}' ORDER BY nome ASC";
E pronto, funcionou. Codigo completo:
<table>
<tr>
<td>
<form action="" method="post">
<input type="hidden" name="ativar" value="1">
<select name="cursos" class="textoEs" onchange="form.submit()">
<?
$sql = 'select * from cursos ORDER BY id_curso DESC';
$exe = mysql_query($sql);

    while($linha = mysql_fetch_array($exe)){
        echo "<option value=\"".$linha['id_curso']."\">";
        echo $linha['cursos']."</option>";
    }
    
?>
</select>
</form>
<br>
</td>
</tr>
</table>

<?
if(isset($_POST["ativar"])){
$curso = $_POST['cursos'];
$sql = "SELECT * FROM inscritos WHERE id_curso='{$curso}' ORDER BY nome ASC";
$exe = mysql_query($sql);

    while($linha = mysql_fetch_array($exe)){
        echo $linha['nome']. "<br>";
        
    }
    
}
?>

Obrigado por ajudar nessas questões citadas, aprendi muito com tudo isso.

Espero que isso ajude mais algumas pessoas.

Att,

Jean Carlo

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...