Socorroooo, jcheckbox

6 respostas
lincolngadea

Olá pessoal,

Espero que alguem possa me ajudar, pois já estou no limite…

Veja só

Tenho uma lista de check box com 50 itens em um cadastro de atividades para membros de um determinado cetor,

Cada membro pode ter inúmeras atividades,

minha dúvida é:

Como eu faço para salvar no banco todos os itens selecionados do checkbox vinculado ao mesmo id do membro???

6 Respostas

maior_abandonado

não sou muito expert em modelagem de banco de dados mas… acredito que a melhor forma seria você ter uma tabela de atividades contendo todas as atividades possiveis, uma para os membros do setor (tipo uma tabela usuarios, seria legal também um campo apenas de foreign key dizendo qual setor ele é la na tabela de setor mais ai é outra história), e uma tabela intermediaria entre usuario e atividade, devendo ter usuarioid, atividadeid (sendo ambos foreign keys para suas tabelas), sendo estes chaves compostas, para poder repetir um mesmo usuario com atividade diferente ou vice versa.

resumidamente um N x N entre usuário e atividade…

se alguém tiver uma ideia melhor posta ai…

lincolngadea

Blz meu brother,

Esse conceito eu tenho, e minha modelagem está exatamente dessa forma, (n para n), no entanto a minha dúvida não era bem relacionada ao banco, o que eu estava querendo saber era como na minha aplicação retornar a String solicitada toda vez que eu selecionar o checkbox e então pegar esse valor e gravar no banco.

Valeu pela intenção, mas já consegui resolver…

Mais tarde eu posto ai o que foi que eu fiz e se alguem tiver uma dica melhor pode mandar…

M

Ola amigo,

Não sei se entendi sua duvida, mas me parece ser mais referente a view neh??

Se eu estiver certo, vc pode fazer o seguinte.

No JSP, vc declara seus checks

<input type="checkbox" name="checAtividades" value="${id_atividade}"/>

O usuario ira selecionar um ou mais,

Vc podera recupera os valores em um servlet da seguinte forma

request.getParameterValues("checAtividades");

este metodo retorna um array com todos os IDs selecionados…

espero ter ajudado.

R

é para web ou desktop?
pois é tem que capturar o valor, e formar uma string com todos os valores capturados, aí vc vai salvar no banco uma informação só.

será que é isto?

todas as atividades escolhidas, independente de como foram escolhidas.
escreve aí

lincolngadea

Eu estava tentando capturar o valor com

gettext(),

então tenho que usar o

request.getParameterValue

ele retorna o nome do checkbox?

Mas preciso salvar os valores no banco em linhas diferentes, não tudo no mesmo campo…

lincolngadea

Estou fazendo assim:

Primeiro eu listo em um ComboBox todos os membros da tabela:

if (primeiraVezMemb == false) {
            try {
                String sqlmembro = "select * from membros Where MEM_NOME like '" + jcb_memb.getSelectedItem() + "'";
                con_membro.executeSQL(sqlmembro);
                con_membro.resultSet.first();
                //int regcodigo = con_membro_disc.resultSet.getInt("DISC_CODIGO");

                tf_cod.setText(con_membro.resultSet.getString("MEM_CODIGO"));
            } catch (SQLException erro) {
                JOptionPane.showMessageDialog(null, "Erro ao inserir código no campo da Membros " + erro);
            }
        }
        primeiraVezMemb = false;

Sempre que seleciono um membro ele me retorna o código em um textField que deixo invisível na aplicação…

Em seguida imprimo esses códigos no checkBox:

if (jch_agp.isSelected()){
            try {

                String sqlativ = "select * from atividade Where ATIV_NOME= 'AGENTE DE PAZ'" ;
                con_ativ.executeSQL(sqlativ);
                con_ativ.resultSet.first();
                //int regcodigo = con_membro_disc.resultSet.getInt("DISC_CODIGO");

                tf1.setText(con_ativ.resultSet.getString("ATIV_CODIGO"));
            } catch (SQLException erro) {
                JOptionPane.showMessageDialog(null, "Erro ao inserir código no campo da ATIVTIDADE " + erro);
            }
            } else {
            jch_agp.setSelected(false);
            tf1.setText("");
            }

Da mesma forma quando seleciono o checkBox ele me retorna o código da atividade em um textfield invisível…

Pego esses códigos e insiro na tabela com relacionamento n para n…

Funciona,

mas é muito trabalhoso,

pois tenho que imprimir esses códigos em cada checkbox e não conseguir criar um método pra simplificar…

Pior ainda quando mando salvar, pois tenho que dá vários selects para dar o insert…

Criado 23 de março de 2010
Ultima resposta 24 de mar. de 2010
Respostas 6
Participantes 4