Here's one suggestion:
function buildListStructure () {
// gotta build from the 'lowest level' (the D list) and work your way up
D1List = new Array("i", "ii", "iii");
D2List = new Array("i", "ii", "iii");
D3List = new Array("i", "iv", "vi");
D4List = new Array("i", "ii");
D5List = new Array("ii", "iii");
. . .
//values under "A 1"
C1List = new Array();
C1List [0] = new Array();
C1List [0,0] = "a";
C1List [0,1] = new Array(D1List);
C1List [1,0] = "b";
C1List [1,1] = new Array(D2List);
//values under "A 2"
C2List = new Array();
C2List[0] = new Array(D3List);
C2List[0,0] = "a";
C2List[0,1] = new Array(D3List);
C2List[1,0] = "b";
C2List[1,1] = new Array(D5List);
C2List [2,0] = "c";
C2List [2,1] = new Array(D6List);
. . .
// values under "A"
B1List = new Array();
B1List [0] = new Array();
B1List [0,0] = "1";
B1List [0,1] = new Array(C1List);
B1List [1,0] = "2"
B1list [1,1] = new Array(C2List);
// values under "B"
. . .
// the top level list
AList = new Array();
AList[0] = new Array();
AList[0,0] = "A";
AList[0,1] = new Array(B1List);
AList[1,0] = "B";
AList[1,1] = new Array(B2List);
. . .
return AList;
}// buildListStructure()
good luck
bob jones
-----Original Message-----
From: Walter Torres [mailto:walter@t...]
Sent: Friday, January 24, 2003 6:42 PM
To: JavaScript Objects
Subject: [javascript_objects] Got to be a better way!
I am pulling (what's left of) my hair out!
I'm trying to create a structure that will let me populate cascading SELECT
lists in succession.
I have 4 lists. When you make a selection from list A, list B is filtered to
display items associated with that item from A. When yo select an item in B,
list C is is filtered to display items associated with that item from A AND
B. And on down unitl list D.
Example:
List A List B List C List D
A 1 a i
ii
iii
b i
iii
vi
2 a i
iv
vi
b i
ii
c ii
iii
...
repeat for ever!
So, this is what I have come up with (see at bottom).
This looks like crap! I know there must be a better way.
Anyone have *any* ideas?
Thanks.
Walter
var objGroups = new Object ('Groups');
objGroups.items = new Object ();
objGroups.items.count = 1;
objGroups.items[0] = new Object ( 'Bankruptcy' );
objGroups.items[0].cat = new Object ();
objGroups.items[0].cat.count = 1;
objGroups.items[0].cat.items = new Object();
objGroups.items[0].cat.items[0] = new Object ( 'ICM
Console
Skill' );
objGroups.items[0].cat.items[0].sites = new Object ();
objGroups.items[0].cat.items[0].sites.count = 2;
objGroups.items[0].cat.items[0].sites.items = new Object ();
objGroups.items[0].cat.items[0].sites.items[0] = new Object ( 'All
Sites' );
objGroups.items[0].cat.items[0].sites.items[0].types = new
Object
();
objGroups.items[0].cat.items[0].sites.items[0].types.count = 3;
objGroups.items[0].cat.items[0].sites.items[0].types.items = new
Object
();
objGroups.items[0].cat.items[0].sites.items[0].types.items[0] = new
Object
( 'Archive' );
objGroups.items[0].cat.items[0].sites.items[0].types.items[1] = new
Object
( 'Daily - Archive' );
objGroups.items[0].cat.items[0].sites.items[0].types.items[2] = new
Object
( 'Daily - Today' );
objGroups.items[0].cat.items[0].sites.items[1] = new Object (
'Florence' );
objGroups.items[0].cat.items[0].sites.items[1].types = new
Object
();
objGroups.items[0].cat.items[0].sites.items[1].types.count = 5;
objGroups.items[0].cat.items[0].sites.items[1].types.items = new
Object
();
objGroups.items[0].cat.items[0].sites.items[1].types.items[0] = new
Object
( 'Archive' );
objGroups.items[0].cat.items[0].sites.items[1].types.items[1] = new
Object
( 'Weekly - Archive' );
objGroups.items[0].cat.items[0].sites.items[1].types.items[2] = new
Object
( 'Weekly - Today' );
objGroups.items[0].cat.items[0].sites.items[1].types.items[3] = new
Object
( 'Monthly - Archive' );
objGroups.items[0].cat.items[0].sites.items[1].types.items[4] = new
Object
( 'Monthly - Today' );
objGroups.items[0].cat.items[0].sites.items[2] = new Object (
'Northridge' );
objGroups.items[0].cat.items[0].sites.items[2].types = new
Object
();
objGroups.items[0].cat.items[0].sites.items[2].types.count = 3;
objGroups.items[0].cat.items[0].sites.items[2].types.items = new
Object
();
objGroups.items[0].cat.items[0].sites.items[2].types.items[0] = new
Object
( 'Archive' );
objGroups.items[0].cat.items[0].sites.items[2].types.items[1] = new
Object
( 'Monthly - Archive' );
objGroups.items[0].cat.items[0].sites.items[2].types.items[2] = new
Object
( 'Monthly - Today' );
..