Criar checkbox dinamicamente

13 respostas
R

Fala pessoal…

to usando Struts e tenho uma Collection na session contendo N objetos…cada objeto tem id e name…

preciso q, ao carregar a pagina, percorrer a Collection e ir criando checkbox com o name do objeto sendo o label e o value a ser passado, sendo o id do objeto…

alguem teria uma luz ae??

valew

13 Respostas

L

Vê se algo desse genero funciona

<logic:iterate blabla>
         <input type="checkbox" name="<bean:write name="form" "nomeDoCheckBox" />" value="<bean:write name="form" "valueDoCheckBox" />"
    </logic:iterate blabla>
A

Então carinha…

Vc tem que fazer um FOR percorrendo a collection e passar os atributos da chckbox pelo objeto.

por exemplo(em JSP):

for(int i=0; i<collection.size(); i++){ ><input type="checkbox" name=collection.get(i).name >

got it? :wink:

R

valew luiz…

mas tava pensando em usar as tags do Struts mesmo…sabe como??

outra coisa, p/ cada checkbox terei tb um text p/ usuario colocar um texto caso selecione o check…
no meu Form tem como recuperar, sei lah, um array com os valores dos checks e dos text´s??

valew

L
Eu acho que com a tag do struts não funciona, ai vc testa e .

    Agora quanto a recuperar um array com os valores do checkbox, 
    tenta declarar no seu form o checkbox com String [] nomecheckbox, que eu acho que funciona. Pelo menos eu fazia assim quando queria que alguma lista com varios registros, cada registro   tivesse um checkbox
R

funcionou luiz…valew…

mais uma coisinha…como eu faria a validacao desses campos??
tipo, se o check for marcado, o text da frente dele eh obrigatorio…

tem como fazer via o validate() do Form?? ou soh via JS mesmo??

valew

L
Então, com validate eu não sei dizer, porque to começando a usar agora, mas com javascript dá blz
R

tem como dar um peq. ex, luiz…

meus check tao assim…

<logic:iterate id="answers" scope="session" name="answers">
					<TR>
						<TD><INPUT type="checkbox" name="answers" value="<bean:write name="answers" property="id"/>">
							<bean:write name="answers" property="name"/></TD>
						<TD>URL:<html:text name="newActivityForm" property="URL" size="50" maxlength="100"></html:text></TD>
					</TR>
					</logic:iterate>

como eu verifico se o check foi marcado e aponto p/ text correto??

valew

C

Dá uma olhada no Struts Validator, tem uma regra validwhen que você pode fazer validações entre campos, como a que vc quer (se o check for marcado o texto é obrigatório). Não sei como fica para atributos que são vetores, mas dá uma olhada na documentação.

I

Como vcs pegam os resultados do checkbox dinâmicos(sem ser usando Struts?).Tô com um problema numa aplicação justamente em receber os parâmetros marcados de um checkbox dinâmico! :cry:

A

Caso todos checkboxes tenham o mesmo nome, o resulta vem em forma de Array:

[1,1,1,1]

Onde “1” eh o cara selecionado :wink:

I

Isso eu sei aborges,mas não dah para pegar só os selecionados para atribuí-los(a um array com os selecionados no caso)?
Aqui:
http://www.guj.com.br/posts/list/17674.java
Eu uso request.getParameterValues(“turma”);
mas somente o primeiro elemento marcado é salvo!

Aí,eu resolvi usar um campo hidden para os marcados em:
http://www.guj.com.br/posts/list/17789.java
mas infelizmente acabo pegando os marcados e mão marcados tb!
esse:
escolha[i]=request.getParameter(“turma”+i);//acaba vindo os q eu marquei e o q não foi selecionado(vem com null e me retorna um erro)

R

bom, mais uma coisinha sobre isso…

agora preciso selecionar os checks e preencher os texts com os valores q vem do banco…
jah recuperei os valores do banco e setei no Form na forma de String[]…

mas nao tah nem selecionando, nem preenchendo…

alguma sugestao??

valew

S

beleza, galera?

Estou com o seguinte problema, eu no momento de gerar os checkbox verifico se eles terão o atributo cheked ou não.
No caso estou deixando todos os meus checkbox checked:

<td colspan="2">
		      <input name="paginaPrincipal" type="checkbox" value ="1" ><jsp:getProperty name="livroBean" property="paginaPrincipal" />>Inserir na página principal?
			  <input name="paginaPromocao" type="checkbox" value ="1" ><jsp:getProperty name="livroBean" property="paginaPromocao" />> Vai para Promoção? 
			  <br> &lt;input name="paginaDestaque" type="checkbox" value ="1" &gt;&lt;jsp:getProperty name="livroBean" property="paginaDestaque" /&gt;> É destaque?
			  &lt;/td&gt;

Se eu desmarcar todos os 3 campos funciona normal, eu recebo os 3 caompos como null.
Se logo em seguida eu virificar que os 3 campos estão desmarcados e eu marcar os 3 campos recebo no request os 3 campos com o valor do value=“1”,
Mas se eu tentar uma 3 vez e selecionar apenas 1 item, os tres vem checked.
E dai pra frente todas as tentativas deram errado, sempre recebo os campos com o valor do value como se estivesse chequed.

Podem me ajudar?
:frowning:

Criado 24 de novembro de 2004
Ultima resposta 24 de ago. de 2005
Respostas 13
Participantes 7