how to generate array based on page wise

Please find the attached file;

//how to generate array values based on page wise;key is pagenumber and values are checked values.
//for example if i click page number one then values then it should come like below;
//what is the best approach to form array  like this ;should i go for JSON array or normal JS approach;

"1",{1,3,4,5}
"2",{6,7,8,9}
"3",{12,13,15}
LVL 20
chaitu chaituAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

chaitu chaituAuthor Commented:
BuggyCoderCommented:
We will make an associative array for this where in MyArray is key value pair:-

var MyArray = {
1 : ["1","3","4","5"],
2 : ["2","6","7"],
3 : ["8","9","11"],
getValue : function(key) {
console.log(MyArray[key]);
}
};

MyArray.getValue(2);

Open in new window

Sar1973Commented:
If you need to declare/define arrays in a recursive way, I suggest to use "eval" function associated with cycles. For example, if "myArray-k" is one of the N the arrays you want to define and you also have a sort of rule to set its contents (i.e. 4 sequential integers each), you can do like this:
for (k = 1; k < N+1; k++) {
      eval("var myArray"+k+"=new Array();");
      for (j = 1; j < 5; j++) {
            eval("myArray["+k+"]="+(k*4-4+j)+";");
      }
}
You can also declare one only array[k][j] if the length of its rows is constant.
Determine the Perfect Price for Your IT Services

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden with our free interactive tool and use it to determine the right price for your IT services. Download your free eBook now!

chaitu chaituAuthor Commented:
BuggyCoder,

.when i check checkbox i want array in below format.

how to create array in the below format?

var MyArray = {
1 : ["1","3","4","5"],
2 : ["2","6","7"],
3 : ["8","9","11"],
};
BuggyCoderCommented:
Declare this javascript object as global object in you js file:-
var MyArray = {
1 : ["1","3","4","5"],
2 : ["2","6","7"],
3 : ["8","9","11"],
getValue : function(key) {
return MyArray[key];
}
};

Open in new window

Next on the click of check box call its getValue with your key(1/2/3) method as:-

MyArray.getValue(1);

Open in new window


This will return an array from the type....
chaitu chaituAuthor Commented:
buggycoder,

you didnt understand my question.first of all i need to prepare like this when user checked checkbox.how to push the values in MyArray .do i need to use MyArray .push method.how will you insert key and value pairs.
Michel PlungjanIT ExpertCommented:
Your question is not clear at all

What do you need the values for? Do they need to be cleared when the checkbox is unchecked?

Also if they really go from 1 to x, change them to go from 0 to (x-1) since javascript arrays start at 0. Also it seems you can use nested arrays instead of associative array which you should never use with numeric indicii.


So

var vals = [
[1,3,4,5],
[6,7,8,19].
[12,13,15]
];

var currentArray;
function checkboxPage(checkbox) {
  currentArray = (checkbox.checked)?vals[(checkbox.value-1)]:null;
}

.
.
.
<input type='checkbox' id='empid' value='1' onclick='checkboxPage(this)'>
<input type='checkbox' id='empid' value='2' onclick='checkboxPage(this)'>
<input type='checkbox' id='empid' value='3' onclick='checkboxPage(this)'>
ahoffmannCommented:
> how will you insert key and value pairs.
// assuming MyArray hash already exists:

MyArray["42"] = ["43","44"];

> how to push the values in MyArray
// as MyArray is a hash, you can "push" values as described above, but you cannot use JavaScripts Array.push(); however, you probably meant:

MyArray["42"].push("45");
Michel PlungjanIT ExpertCommented:
If you use a normal array, you can push an array.
MyArray.push([45,46])
Sar1973Commented:
If you have a 1-dimension array, such as MyMonoArray=["1", "2", "3"] the syntax is:
MyArray.push("4")
If the array you have declared is multidimensional, such as MyMultiArray=[["1", "2", "3"], ["5", "6", "7"]] you will have obviously to push 2 elements (one for each row) with 2 commands:
MyMultiArray[0].push("4");
MyMultiArray[1].push("8");
or with a single command (I guess):
MyMultiArray.push({"Row1Name":"4","Row2Name":"8"});

Take a look at this also:
http://javascript.info/tutorial/array
http://www.kirupa.com/forum/archive/index.php/t-212054.html
Michel PlungjanIT ExpertCommented:
Nope
MyMultiArray[0].push("4");
MyMultiArray[0].push("8");
Sar1973Commented:
If you push them in the same line, the array becomes:
["1", "2", "3", "4", "8"], ["5", "6", "7", , ]]
which is to say that you get 2 undefined values.
Try it yourself by customizing yor code and calling a generic fruits[x][y] element in this demo:
http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_push
Michel PlungjanIT ExpertCommented:
W3fools.com
Enough said
chaitu chaituAuthor Commented:
sorry for the late reply.actually am doing checkbox pagination.for each page 5 records will be displayed.so i want to know on each page howmany values has been checked.

see the attached example.
how to construct JSON in this format;

[{"1":"1,2,3"},{"2":"6,7,8"}]
checkbox.html
chaitu chaituAuthor Commented:
if JSON structure is like this;

var checkboxvalues=
[
    {
        "pageno": 1,
        "values": "1,2,3"
       
    },
    {
        "pageno": 2,
        "values": "6,7,8"
    }
]


how to retreive page:2 related values??
Michel PlungjanIT ExpertCommented:
checkboxvalues[1].values;

javascript arrays are 0 based
chaitu chaituAuthor Commented:
Can you answer my previous Q?

how to construct JSON in this format;

[{"1":"1,2,3"},{"2":"6,7,8"}]
Michel PlungjanIT ExpertCommented:
If you expect gaps in the pages, use object array

Pages={
  page1:[1,0,0,1,1],
  page5:[1,0,0,0,1]
}

If not, use simple array of arrays perhaps there is no need for JSON
Pages=[[1,0,0,1,1],[1,0,0,0,1]]
Sar1973Commented:
The correct syntax in a single explicit declaration should be:
var checkboxvalues = [ { "pageno": "1", "values": ["value1", "value2", "value3"] }, { "pageno": "2", "values": ["value4", "value5", "value6"] } ]
If you want a recursive/iterational declaration with "eval" function, you'll need single quotes, pluses and other separators and indexes.
Michel PlungjanIT ExpertCommented:
"eval"  is VERY SELDOM necessary and should be avoided as much as possible

This is syntactically correct too
var checkBoxArrayPerPage={
  page1:[1,0,0,1,1],
  page5:[1,0,0,0,1]
}
chaitu chaituAuthor Commented:
how to construct JSON array in this format .when i checkbox values in page1 then how to append values in page 1 and simulataneously if user uncheck then how can you remove the values from page1.


var checkboxvalues = [ { "pageno": "1", "values": ["value1", "value2", "value3"] }, { "pageno": "2", "values": ["value4", "value5", "value6"] } ]
Michel PlungjanIT ExpertCommented:
Pageno is irrelevant here
checkboxvalues[0].values[3]=obj.checked
will update the 4th value on page 1 (the 0th entry)

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
JavaScript

From novice to tech pro — start learning today.