Ajuda com caixas de selecção interligadas - PHP - Portugal-a-Programar
Ajuda com caixas de selecção interligadas
December 3, 2010 in PHP
tenho de efectuar um form com varias caixas de selecção, entre as quais 3 delas tem de estar interligadas, sendo que mediante a escolha da 1ª caixa ira dar valores na 2ª e mediante a escolha da 2ª ira dar valores na 3ª.
A ideia é a 1ª escolhe-se o departamento, na 2ª ja so aparece os grupos desse departamento, escolhe-se o grupo que se quer, e na 3ª ja so aparece os utilizadores desse grupo.
Não sei se estar explicito, mas será a melhor forma de explicar.
Deves querer algo do tipo (confirma sff):
Um select box com os departamentos.
Qd o departamento está seleccionado, ele lê info e populariza o selectbox dos grupos do departamento.
Qd o grupo do departamento está seleccionado, ele populariza com a lista dos utilizadores desse grupo.
Penso que será algo desse tipo, só não sei o que chamas populariza
mas não quero janelas de popup, quero apenas que ele actualize a caixa seguinte.
Peço desculpa se estou a dizer alguma aberração.
Popularizar é preencher a selectbox com as opções
Vê este script. Com algumas alterações ele faz o que tu queres:
(acho que há um q faz mais exactamente o que tu queres, deixa ver se encontro)
Se pegares neste script:
http://www.javascriptkit.com/script/script2/triplecombo.shtml
e alterares o seu funcionamento para ajax tens o que queres.
Nesse casso sim.
Seleccionando a 1ª ele preencher a 2ª e assim sucessivamente.
Tens várias maneiras de fazer de isso mas apesar de não ser muito difícil também não é muito simples.
Se os valores forem fixos (sempre os mesmos) podes usar javascript, existem várias funções na net que é só aplicar.
Se vierem da base de dados ou usas só php ou então para ficar bonito podes usar AJAX (jquery faz isso bem).
Só por PHP podes adicionar o evento onchange à select e submetes o form com o 1º valor, depois de submeteres fazes a query para o segundo select (tb com o evento onchange) e depois igual para o 3º.
De qualquer forma podes procurar na net por "populate select javascript", php ou jquery conforme quiseres.
O que aconselhas???
Eu sou novo nisto, por isso qual quer das soluções para mim e novidade.
Os valores são fixos ou são da BD?
Se forem fixos penso que os links que o brunoais mandou funcionam bem, se for de BD aconselho o Jquery mas aviso já que não é muito directo para quem está a começar.
São de BD
Peço desculpa, mas ja estou a deitar fumo e nao entendo como fazer.
Estou a utilizar o exemplo do
Mas realmente nao consigo mudar para fazer que actualize a 2 caixa dinamicamente, pois nao sei como ir buscar os valores ao mysql.
// pagina protegida, incluir script de verifica??o de login
//require 'verificarLogin.php';
<FORM method="post" name="isc">
<select size="10" name="example" size="1" onChange="redirect(this.options.selectedIndex)">
<?php    departamento()?>
<select size="10" name="stage2" size="1" onChange="redirect1(this.options.selectedIndex)">
<select size="10" name="stage3" size="1" onChange="redirect2(this.options.selectedIndex)">
for (i=0; i<groups; i++)  {
for (j=0; j<group[i].length; j++)  {
secondGroup[i][j]=new Array()  }}
Depois tenho uma função para criar a caixa que fica aqui tambem:
function grupo1($p_valor,$valor){
$sql1="select * from grupo where ID_departamento=".$valor."";
while ($lin1 = mysql_fetch_assoc($res1)) {
if($lin1['ID_grupo'] == $p_valor){
$texto='selected';
<option  <?php echo $texto; ?> value="<?php echo $lin1['ID_grupo']; ?>" > <?php echo ($lin1['nome']); ?></option>
Podes retirar o codigo que preparei propositadamente para este efeito. Está a funcionar.
Atanção que necessita de implementação de medidas de segurança.
Se alguem quiser testar e melhorar por favor disponibilizem aqui o código.
Utilizei a solução e implementei mais uma caixa de selecção.
Penso que consegui fazer o prendido.
Agora tenho de criar uma solução para actualizar um caixa de selecção depois de fazer um insert na BD.
Aproveitando a solução do ruimcosta e adaptando para os valores que tenho de consultar e com caixas de selecção múltiplas, o meu objectivo era após a escolha da ultima caixa ter um botão para fazer o insert da BD do responsável na actividade, e seguidamente efectuar a actualização da quarta caixa de selecção onde se encontram os responsáveis da actividade.