Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Atualizar lista com checkbox e JSTL

Boa tarde pessoal! Semana passada estava com dúvida de como salvar uma lista e o Ricardo Johannsen Marques Cutrim Pereira, me mostrou como fazer e ficou bom, porém eu tinha um campo que eu atualizava de forma fixa, que era com campo que sempre eu passava true e inseria no BD como boolean, porém agora recupero a informação do BD e modifico através de checkbox,

Antes era assim:

<td><input type="text" name="item[].statusNoSite" value="true" /></td>

Agora quero fazer de forma dinâmica, e estou fazendo assim

<td><input class="checkbox1" onclick="alteraValor(this);" type="checkbox" name="item[].statusNoSite"   
                        <c:if test="${fn:contains(item.statusNoSite, true)}">
                           checked="checked"     
                           </c:if>/>
                    </td>

quando listo esta mostrando corretamente os que estão checked, porém quando marco um outro e coloco para fazer o update, se eu marcar o ultimo da lista, e atualizar quando eu listo foi marcado o primeiro! e se marco qualquer outro e atualizo ele marca o segundo!

Gostaria de saber o que posso fazer ! Desde já agradeço!

1 resposta
solução!

Resolvido, faltava isso

<td> <input class="checkbox1" onclick="alteraValor(this);" type="checkbox" name="item[${s.index}].statusNoSite" 
                    <c:if test="${fn:contains(item.statusNoSite, true)}"> checked="checked" value="true"</c:if>/>
                    </td>

e o js ficou assim

<script type="text/javascript">
$(document).ready(function() {
    $('#selecctall').click(function(event) {
        if(this.checked) {
            $('.checkbox1').each(function() {
                this.checked = true;               
            });
        }else{
            $('.checkbox1').each(function() {
                this.checked = false;        
            });         
        }
    });

});

function alteraValor(obj){    if(obj.checked)        obj.value = 'true';    else        obj.value = 'false';} 
</script>