• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 508
  • Last Modified:

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}
0
chaitu chaitu
Asked:
chaitu chaitu
  • 8
  • 7
  • 4
  • +2
3 Solutions
 
chaitu chaituAuthor Commented:
0
 
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

0
 
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.
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
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"],
};
0
 
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....
0
 
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.
0
 
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)'>
0
 
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");
0
 
Michel PlungjanIT ExpertCommented:
If you use a normal array, you can push an array.
MyArray.push([45,46])
0
 
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
0
 
Michel PlungjanIT ExpertCommented:
Nope
MyMultiArray[0].push("4");
MyMultiArray[0].push("8");
0
 
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
0
 
Michel PlungjanIT ExpertCommented:
W3fools.com
Enough said
0
 
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
0
 
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??
0
 
Michel PlungjanIT ExpertCommented:
checkboxvalues[1].values;

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

how to construct JSON in this format;

[{"1":"1,2,3"},{"2":"6,7,8"}]
0
 
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]]
0
 
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.
0
 
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]
}
0
 
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"] } ]
0
 
Michel PlungjanIT ExpertCommented:
Pageno is irrelevant here
checkboxvalues[0].values[3]=obj.checked
will update the 4th value on page 1 (the 0th entry)
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

  • 8
  • 7
  • 4
  • +2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now