Solved

check multiple checkbox checked using array values

Posted on 2011-03-24
8
688 Views
Last Modified: 2012-05-11
hi
below is the code for multiple checkbox, which is working perfectly the way i want.. like if you select doesnt matter other check box gets unchecked... and when you check other checkboxes doesnt matter checkbox gets unchecked... so its like doesnt matter v/s other checkbox... this is just explanation of my code...
Now what new is i want...

I have the edit page.. where i fetch the values from database.. for marital status which is having 4-5 checkbox.. its  values are coming in the form of array... like

Doesnt matter, Never Married, Divorced
So my question is how do i check the respective checkboxes based on the value i fetch from database and matching it with checkbox.. and only problem i have is my values for all checkboxes are coming  ..separated by comma... so how to split and do the task...
below is the current code..

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript">
var clearTextWhenOtherSelected = true;
function list(c,n,z)
{
  if(clearTextWhenOtherSelected)
  {
    document.getElementById('data_marital_part').value = '';
    clearTextWhenOtherSelected = false;
  }
  s=document.InstantSMS1.maritalstatusdata.value;
  if(c.checked)
  {
    if(s.indexOf(n)<0) s+=','+n;
  }
  else
  {
    s=document.InstantSMS1.maritalstatusdata.value.replace(','+n,'');
  }
  z=",";

  if (s.substring(2) == z) s=s.substring(2);
    document.InstantSMS1.maritalstatusdata.value=s;
}


function txtrep() {
var newtext = "Second text here";
document.getElementById('data_marital_part').value = newtext;
clearTextWhenOtherSelected = true;

}
</script>
</head>
<body>
<form name="InstantSMS1">
<h1>Marital Status :</h1><br />
<input name="mStatus" type="checkbox" id="doesntmatter" value="Doesn't Matter" onclick="r=document.getElementsByName('mStatus');for(var i=0;i<r.length;i++) if(r[i]!=this)r[i].checked=r[i].checked&&!this.checked;list(this,'Do Not Matter');txtrep()" />Doesn't Matter<br />
<input name="mStatus" type="checkbox" value="Never Married" onclick="if(this.checked) document.getElementsByName('mStatus')[0].checked=false;list(this,'Never Married');" />Never Married<br /> 
<input name="mStatus" type="checkbox" value="Divorced" onclick="if(this.checked) document.getElementsByName('mStatus')[0].checked=false;list(this,'Divorced');" />Divorced<br /> 
<input name="mStatus" type="checkbox" value="Widowed" onclick="if(this.checked) document.getElementsByName('mStatus')[0].checked=false;list(this,'Widowed');" />Widowed<br /> 
<input name="mStatus" type="checkbox" value="Separated" onclick="if(this.checked) document.getElementsByName('mStatus')[0].checked=false;list(this,'Separated');" />Separated<br /> 
<input name="mStatus" type="checkbox" value="Annulled" onclick="if(this.checked) document.getElementsByName('mStatus')[0].checked=false;list(this,'Annulled');" />Annulled<br /> 
<br />
<br />
<input type="text" name="maritalstatusdata" id="data_marital_part" value="" />
</form>
</body>
</html>

Open in new window


Thanks
0
Comment
Question by:global_expert_advice
  • 4
8 Comments
 
LVL 40

Accepted Solution

by:
Richard Quadling earned 500 total points
ID: 35211010
Why are you using a checkbox rather than a radio group?

Checkboxes are normally for discrete/unconnected elements.

e.g.

[ ] Do you want $1,00,000?
[ ] Do you eat dogs?

Radio groups are for things like...

Marital Status
(*) Doesn't matter
( ) Never married
( ) Divorced
( ) Widowed
( ) Separated
( ) Annulled
( ) Living in sin and happy as a pig in shit!

For a radio button to be in a "group", the name must be the same.


Try this code as an example. Just save it as form.html and load it - even from your local drive - no web server required.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Checkbox's vs Radio Groups</title>
</head>
<body>
<form method="get">
<form name="InstantSMS1">
<input name="likes[money]" type="checkbox" id="money" value="1" /> Do you like $1,000,000?<br />
<input name="likes[dogs]" type="checkbox" id="dogs" value="1" /> Do you eat dogs?<br />

<input name="maritalStatus" type="radio" id="ms1" value="Doesn't Matter" checked="checked" /> Doesn't Matter<br />
<input name="maritalStatus" type="radio" id="ms2" value="Never married" /> Never married<br />
<input name="maritalStatus" type="radio" id="ms3" value="Divorced" /> Divorced<br />
<input name="maritalStatus" type="radio" id="ms4" value="Widowed" /> Widowed<br />
<input name="maritalStatus" type="radio" id="ms5" value="Separated" /> Separated<br />
<input name="maritalStatus" type="radio" id="ms6" value="Annulled" /> Annulled<br />
<input name="maritalStatus" type="radio" id="ms7" value="Living in sin and happy as a pig in shit!" /> Living in sin and happy as a pig in shit!<br />

<input type="submit" />
</form>
If you fill the form in, and click submit, you'll see something like this on the URL.<br />
<pre>?likes%5Bdogs%5D=1&maritalStatus=Never+married</pre><br />
If you are using PHP, then your $_GET would looke like ... <br />
<pre>$_GET['likes']['dogs'] = 1
$_GET['maritalStatus'] = 'Never married'</pre>
</body>
</html>

Open in new window

0
 
LVL 1

Author Comment

by:global_expert_advice
ID: 35211048
hi
radio button is not required... as i want to pass the checkbox values using concatenating to string format... like ,2,3,4,5

also my question is how to make the checkbox checked by matching its value with the string value... it can be matched and done.. if the fetching value is single... like 2 but values are 2,3,4,5
so if checkbox value is 3 ... and if it matched with fetched value... it should be checked...
0
 
LVL 17

Expert Comment

by:Shinesh Premrajan
ID: 35229374
Possibility here it depends upon how are you getting the data from the database, I mean the server end and how you are handling it.

I suggest implementing it using the server technology rather then at the client side, a easy approach. I its agreeable then pls mention the server technology you are using.
0
Microsoft Certification Exam 74-409

Veeam® is happy to provide the Microsoft community with a study guide prepared by MVP and MCT, Orin Thomas. This guide will take you through each of the exam objectives, helping you to prepare for and pass the examination.

 
LVL 1

Author Comment

by:global_expert_advice
ID: 36420452
I've requested that this question be deleted for the following reason:

no specific answer, i solved it myself thanks
0
 
LVL 1

Author Comment

by:global_expert_advice
ID: 36504600
hi

my question was realed to javascript function for checking and unchecking with few options, but the expert comments where not specific, infact i provided full coding too but they didnt able to understand and  may i m not able to explain things. Thats the reason i asked to  close this question
0
 
LVL 1

Author Closing Comment

by:global_expert_advice
ID: 36504761
thanks
0

Featured Post

Problems using Powershell and Active Directory?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Things That Drive Us Nuts Have you noticed the use of the reCaptcha feature at EE and other web sites?  It wants you to read and retype something that looks like this.Insanity!  It's not EE's fault - that's just the way reCaptcha works.  But it is …
Have you tried to learn about Unicode, UTF-8, and multibyte text encoding and all the articles are just too "academic" or too technical? This article aims to make the whole topic easy for just about anyone to understand.
In this tutorial viewers will learn how to embed videos in a webpage using HTML5. Ensure your DOCTYPE declaration is set to HTML5: "<!DOCTYPE html>": Use the <video> tag to insert a video. Define the src as the URL of your video; this is similar to …
HTML5 has deprecated a few of the older ways of showing media as well as offering up a new way to create games and animations. Audio, video, and canvas are just a few of the adjustments made between XHTML and HTML5. As we learned in our last micr…

832 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question