Criar checkbox dinamicamente

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

Vê se algo desse genero  funciona

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

[/code]

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:

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

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

    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

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

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

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

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.

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:

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:

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)

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

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: