By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
459,381 Members | 1,641 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 459,381 IT Pros & Developers. It's quick & easy.

Selecting/deselecting checkboxes

P: n/a
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
Share this Question
Share on Google+
5 Replies


P: n/a
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

P: n/a
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

P: n/a
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

P: n/a
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

P: 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.