Solved

# how to generate array based on page wise

Posted on 2012-04-11
479 Views
Last Modified: 2012-05-03
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}
0
Question by:chaitu chaitu
• 8
• 7
• 4
• +2
23 Comments

LVL 20

Author Comment

0

LVL 20

Expert Comment

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);
``````
0

LVL 9

Expert Comment

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.
0

LVL 20

Author Comment

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"],
};
0

LVL 20

Expert Comment

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];
}
};
``````
Next on the click of check box call its getValue with your key(1/2/3) method as:-

``````MyArray.getValue(1);
``````

This will return an array from the type....
0

LVL 20

Author Comment

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.
0

LVL 75

Assisted Solution

Michel Plungjan earned 334 total points
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)'>
0

LVL 51

Expert Comment

> 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");
0

LVL 75

Expert Comment

If you use a normal array, you can push an array.
MyArray.push([45,46])
0

LVL 9

Assisted Solution

Sar1973 earned 166 total points
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
0

LVL 75

Expert Comment

Nope
MyMultiArray[0].push("4");
MyMultiArray[0].push("8");
0

LVL 9

Expert Comment

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
0

LVL 75

Expert Comment

W3fools.com
Enough said
0

LVL 20

Author Comment

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
0

LVL 20

Author Comment

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??
0

LVL 75

Expert Comment

checkboxvalues[1].values;

javascript arrays are 0 based
0

LVL 20

Author Comment

Can you answer my previous Q?

how to construct JSON in this format;

[{"1":"1,2,3"},{"2":"6,7,8"}]
0

LVL 75

Expert Comment

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]]
0

LVL 9

Expert Comment

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.
0

LVL 75

Expert Comment

"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]
}
0

LVL 20

Author Comment

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"] } ]
0

LVL 75

Accepted Solution

Michel Plungjan earned 334 total points
Pageno is irrelevant here
checkboxvalues[0].values[3]=obj.checked
will update the 4th value on page 1 (the 0th entry)
0

## Join & Write a Comment Already a member? Login.

### Suggested Solutions

Introduction Got endorsements from your clients? Â Great! Â There is almost nothing better than word-of-mouth advertising. Â But how can you do that on the internet? Â Sure you can make a page for endorsement quotations and list them all, but who is â€¦
Introduction If you're like most people, you have occasionally made a typographical error when you're entering information into an online form.Â  And to your consternation, the browser remembers the error, and offers to autocomplete your future entrâ€¦
The viewer will learn how to dynamically set the form action using jQuery.
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)

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

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

#### Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!