Como verificar se pelo menos um checkbox foi selecionado

3,173 views
Skip to first unread message

Gustavo Segalla

unread,
Apr 30, 2007, 3:15:11 PM4/30/07
to ph...@googlegroups.com
Buenas,
 
Preciso verificar se pelo menos um dos checkboxes de uma tabela foram marcados, poderia tratar posteriormente no PHP mas acredito ser melhor já dar o POST com oque realmente precisa ser feito.
Verifiquei que é a propriedade length que utiliza-se facilmente para fazer isso, mas realmente não está dando certo.
 
<form name='renovar' method='POST' action=".$_SERVER['PHP_SELF']." onsubmit='return validar(this)'>
<input type='hidden' name='action' value='renovar'>
 
echo ('<input type="checkbox"  enabled class="formb" name="id[]" value="'.$rs->fields[0].'">');

 

Se troco id[] por id, ai consigo fazer a validação corretamente, só que o array que recebo no POST não contem os IDS marcados e sim o nº do checkbox (1,2,3.....)

<SCRIPT language='javascript'>

 function validar(theForm)
 {
         var checkSelected = false;
         for (i = 0;  i < theForm.id.length;  i++){
           if (theForm.id[i].checked)
             checkSelected = true;
         }

         if (!checkSelected){
           alert('Selecione pelo menos um Título!');
           return (false);
         }
         else{
              return (true);
         }
 }

</SCRIPT>

Se alguém tiver uma luz.... (y)

Rodrigo L. Suder

unread,
May 1, 2007, 9:34:04 AM5/1/07
to ph...@googlegroups.com
E ae Gustavo,

Fiz da seguinte maneira e funcionou. Consigo verificar cada checkbox
foi selecionado. Fiz de maneira estática, ou seja, sem vim do banco e
nada. Acredito que para o seu caso, vc vai trocar os indices de cada
checkbox por uma variável autoincrement só para diferenciar um
checkbox do outro. Pode ser que tenha uma maneira mais fácil de fazer
isso, porém dessa forma tb dá certo.

/// codigo ////

<form id="form1" name="form1" method="post" action="" >
<table width="550" border="0" align="center" cellpadding="0"
cellspacing="0">
<tr>
<td><div align="center">
<input type="checkbox" name="id[0]" id="id[0]" value="1" />
</div></td>
</tr>
<tr>
<td><div align="center">
<input type="checkbox" name="id[1]" id="id[1]" value="2" />
</div></td>
</tr>
<tr>
<td><div align="center">
<input type="checkbox" name="id[2]" id="id[2]" value="3" />
</div></td>
</tr>
<tr>
<td><div align="center">
<input type="checkbox" name="id[3]" id="id[3]" value="4" />
</div></td>
</tr>
<input type="hidden" name="max" value="4">
<tr>
<td><div align="center">
<input type="button" name="Submit" value="Submit"
onclick="return validar()" />
</div></td>
</tr>
</table>
</form>

function validar()
{
var checkSelected = false;
for (i = 0; i < document.getElementById('max').value; i++){
if (document.getElementById('id['+i+']').checked){
checkSelected = true;
alert("valor selecionado "+document.getElementById('id['+i+']').value);
}
}

if (!checkSelected){
alert('Selecione pelo menos um Título!');
return (false);
}
else{
return (true);
}
}

Espero que tenha ajudado

Abraço

Em 30/04/07, Gustavo Segalla<seg...@gmail.com> escreveu:


--
Rodrigo Luis Suder
msn:dfro...@hotmail.com

Pablo Madalena Targa

unread,
May 1, 2007, 11:19:26 AM5/1/07
to ph...@googlegroups.com
Opa...
 
Estou começando com o php mas isso pode ser resolvido com o javascript, segue funçãozinha
 
 
<script>
//Esta função confere se algum checkbox foi selecionado.
//como chamar:
//  selecionouCheck(document.getElementById('seuCheckbox'));
//params:
//  checkitem => o nome do checklist para verificar. todos devem estar com o mesmo name pra funcionar
//return:
//  true  => Se algum checkbox foi selecionado;
//  false => Se nenhum checkbox foi selecionado
function selecionouCheck(checkitem)
{
  selecionou = false;
  if(isNaN(checkitem.length))
  {
    selecionou = checkitem.checked;
  }
  else
  {
    i = 0;
    while( (i<=(checkitem.length-1)) && (!selecionou) )
    {
      selecionou = checkitem[i].checked;
      i++;
    }
  }
 
  return selecionou;
}
</script>
 
 
Espero ter ajudado, abraços...
 
Em 01/05/07, Rodrigo L. Suder <rods...@gmail.com> escreveu:
                  if (document.getElementById ('id['+i+']').checked){

Gustavo Segalla

unread,
May 1, 2007, 7:23:15 PM5/1/07
to ph...@googlegroups.com
Olá Rodrigo,
 
Perfeito, consegui implementar corretamente agora, consegui visualizar que meu prob. foi não ter atinado para o id de cada checkbox estava preocupado só em setar um valor e nome para eles.
Assim ficou show, valeu mesmo.

 
Em 01/05/07, Rodrigo L. Suder <rods...@gmail.com> escreveu:
                  if (document.getElementById ('id['+i+']').checked){
Reply all
Reply to author
Forward
0 new messages