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

luiz_ross

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>
andre_a_s

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

luiz_ross
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

luiz_ross
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.

Ironlynx

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:

aborges

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:

Ironlynx

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