472,133 Members | 1,425 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,133 software developers and data experts.

Selecting/deselecting checkboxes

Jez
Hi,

I have created the following functions to select and deselect
checkboxes in a form ...

function check(checkbox) {
for (i = 0; i < checkbox.length; i++) {
checkbox[i].checked = true;
}
return "Select all";
}

function uncheck(checkbox) {
for (i = 0; i < checkbox.length; i++) {
checkbox[i].checked = false;
}
return "Select none";
}

The form itself looks like this ...

<form name="form" action="delete.php" method="post">
<input type="checkbox" name="id" value="1" />Option 1<br />
<input type="checkbox" name="id" value="2" />Option 2<br />
<input type="checkbox" name="id" value="3" />Option 3<br />
<input type="button" value="Select all"
onClick="this.value=check(this.form.id)" />
<input type="button" value="Select none"
onClick="this.value=uncheck(this.form.id)" />
<input type="submit" name="submit" value="Delete selected" />
</form>

This all seems to work very well (although constructive critisism
would be welcome), however I actually need to name the input 'id[]'
because I'm generating an array of values. Unfortunately the funtions
don't seem to like '[]'. Is there anything I can do?

Thank you in advance for your help. It's greatly appreciated!

Jez
Jul 20 '05 #1
5 22881
Feeding an array of checkboxes into a php script?

<input type="checkbox" name="id[]" id="id" value="1">
<input type="checkbox" name="id[]" id="id" value="2">
<input type="checkbox" name="id[]" id="id" value="3">

or try:

<input type="button" value="Select all"
onClick="this.value=check(this.form.elements['id[]'])" />
<input type="button" value="Select none"
onClick="this.value=uncheck(this.form.elements['id[]'])" />

"Jez" <je**********@btinternet.com> wrote in message
news:ad**************************@posting.google.c om...
Hi,

I have created the following functions to select and deselect
checkboxes in a form ...

function check(checkbox) {
for (i = 0; i < checkbox.length; i++) {
checkbox[i].checked = true;
}
return "Select all";
}

function uncheck(checkbox) {
for (i = 0; i < checkbox.length; i++) {
checkbox[i].checked = false;
}
return "Select none";
}

The form itself looks like this ...

<form name="form" action="delete.php" method="post">
<input type="checkbox" name="id" value="1" />Option 1<br />
<input type="checkbox" name="id" value="2" />Option 2<br />
<input type="checkbox" name="id" value="3" />Option 3<br />
<input type="button" value="Select all"
onClick="this.value=check(this.form.id)" />
<input type="button" value="Select none"
onClick="this.value=uncheck(this.form.id)" />
<input type="submit" name="submit" value="Delete selected" />
</form>

This all seems to work very well (although constructive critisism
would be welcome), however I actually need to name the input 'id[]'
because I'm generating an array of values. Unfortunately the funtions
don't seem to like '[]'. Is there anything I can do?

Thank you in advance for your help. It's greatly appreciated!

Jez

Jul 20 '05 #2
Thanks, that's excellent!

My function now works perfectly unless there's only one checkbox, in
which case it doesn't work at all.

Any ideas?

Jez

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!
Jul 20 '05 #3
A single checkbox doesn't have a length property, so you can't loop through
using id.length, you have to specifically check the id

An example I pulled from a page which dynamically generates a group of
checkboxes:

// check for single checkbox by seeing if an array has been created
var cblength=document.forms['inbox'].elements['del'].length;
if(typeof cblength=="undefined")
{
if(document.forms['inbox'].elements['del'].checked==true) count++;
}
else
{
for(i=0;i<document.forms['inbox'].elements['del'].length;i++)
{
if(document.forms['inbox'].elements['del'][i].checked) count++;
}
}
Assuming you are using php

<input type="checkbox" name="bob" value="3">

and in the php

<?php
if(isset(_POST["bob"])
{
// checkbox 'bob' has been checked in the form
$bob=$_POST["bob"];
// variable $bob will be set to the value of checkbox 'bob', in this case
"3"
}
else
{
// checkbox 'bob' has not been checked, set a default value
$bob="0";
}

"Jez Hailwood" <je**********@btinternet.com> wrote in message
news:3f*********************@news.frii.net...
Thanks, that's excellent!

My function now works perfectly unless there's only one checkbox, in
which case it doesn't work at all.

Any ideas?

Jez

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!

Jul 20 '05 #4
Jez
Problem now solved with a much simpler solution ...

function selectAll(state) {
for (i = 0; i < document.form.elements.length; i++) {
var checkbox = document.form.elements[i];
checkbox.checked = state;
}
}

<input type="button" value="Select all" onClick="selectAll(true);" />
<input type="button" value="Clear all" onClick="selectAll(false);" />

Jez
Jez Hailwood <je**********@btinternet.com> wrote in message news:<3f*********************@news.frii.net>...
Thanks, that's excellent!

My function now works perfectly unless there's only one checkbox, in
which case it doesn't work at all.

Any ideas?

Jez

Jul 20 '05 #5
elsint
1
Great solution!!

Problem now solved with a much simpler solution ...

function selectAll(state) {
for (i = 0; i < document.form.elements.length; i++) {
var checkbox = document.form.elements[i];
checkbox.checked = state;
}
}

<input type="button" value="Select all" onClick="selectAll(true);" />
<input type="button" value="Clear all" onClick="selectAll(false);" />

Jez


Jez Hailwood <jez.hailwood@btinternet.com> wrote in message news:<3f171020$0$203$75868355@news.frii.net>...[color=blue]
> Thanks, that's excellent!
>
> My function now works perfectly unless there's only one checkbox, in
> which case it doesn't work at all.
>
> Any ideas?
>
> Jez[/color]
Jul 14 '06 #6

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

9 posts views Thread by Phil Powell | last post: by
1 post views Thread by Bob Loveshade | last post: by
reply views Thread by leo001 | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.