Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

jcfr

[Resolvido] Verificar valor de checkbox

Mensagens Recomendadas

jcfr

bom dia pessoal...

tenho uma form deste genero:

<form id="selec" name="selec">
<?php
$x=0;
while($row=mysql_fetch_array($sql)){
$x=$x+1;
?>
<input type="checkbox" name="sel" id="sel" value="<?php echo $row['id'];?>" /> <?php echo $row['nome'];?>
<?php
}
?>
</form>

e quero verificar se estão seleccionadas as checkboxs e enviar o valor das que estiverem, estou a tentar assim:

<script type="text/javascript">
<!--

function get_check_value(num){
var c_value = "";
var x=0;
var sel = new Array(10);
for (var i=0; i < num; i++){
	if (document.selec.sel[i].checked){
		x=x+1;
		c_value = c_value + '&sel[]=' + document.selec.sel[i].value;
	}
}
alert(c_value);
self.location='pagina.php?num=' + x + c_value;
}

//-->
</script>

e depois tenho um link para chamar a funcao:

<a href="#" onclick="get_check_value(<?php echo $x;?>);">[ Eliminar ]</a>

o problema é que nao esta a funcionar...

diz que o objecto document.selec.sel[].checked é nulo ou nao existente...

ja tentei

<input type="checkbox" name="sel[]" id="sel[]" value="<?php echo $row['id'];?>" /> <?php echo $row['nome'];?>

mas também nao funciona, alguem me consegue dar uma ajudinha?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
mjamado

Por javascript vai-te ser muito, muito difícil. Acontece que os id's, em HTML, devem ser únicos; os name's é que podem ter esse truque do array, e só o PHP é que apanha.

O truque possível é inserires no id o valor daquela variável que tens ali sem fazer nada, que vem mesmo a calhar...

$x=0;
while($row=mysql_fetch_array($sql))
{
    $x=$x+1;
    echo('<input type="checkbox" name="sel[]" id="sel_' . $x . '" value="' . $row['id'] . '" /> ' . $row['nome']);
}

Depois, em JS, iteras pelo número de checkboxes criadas, exactamente como tens, só que o id que vais tentar apanhar tem que ser eval'd ou algo que o valha. Se usares uma framework JS, como o Prototype ou jQuery, será muito, muito mais fácil...


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
KiNgPiTo

O problema deve ser ao ler as checkboxes...

Um simples exemplo (mais fiável) do que podes fazer em js é isto:

var aChk = document.getElementsByName("sel");

for (var i=0;i<aChk.lenght;i++){ // Corre todas as checkboxes
     if (aChk[i].checked == true){ // Se estiver seleccionada
         valor = aChk[i].value; // O valor da seleccionada
     }
}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jcfr

ja consegui resolver, tendo as checkboxs:

<input type="checkbox" name="sel" id="sel" value="<?php echo $id_email;?>" />

e com a funcao:

<script type="text/javascript">
<!--

function get_check_value(num){
var c_value = "";
var x=0;

var sel = new Array(10);
for (var i=0; i < num; i++){


	if (document.selec.sel[i].checked){

		x=x+1;
		c_value = c_value + '&sel[]=' + document.selec.sel[i].value;
	}
}
alert(c_value);
top.location='pagina.php?num=' + x + c_value;
}

//-->
</script>

assim ja funcionou mas obrigado pela ajuda na mesma

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
mjamado

Isso está a funcionar? Em que browsers já testaste?


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
mjamado

Olha, ainda bem.

Mas fica com a noção que isso está errado, não é (X)HTML válido.


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.