Jump to content
Sign in to follow this  
jcfr

[Resolvido] Verificar valor de checkbox

Recommended Posts

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?

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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
     }
}

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.