Please help me.........

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Michael

    Please help me.........

    I want to have more population dropdown boxes (see below script) but
    it gives me an error on the line "for (var
    q=myChoices.thi rdChoice.option s.length;q>=0;q--)
    myChoices.third Choice.options[q] = null; " Who can help me out!? I am
    so frustated...... ..Please help me...In advance I want to have in
    totally 4 dropdown boxes....

    <HEAD>
    <SCRIPT LANGUAGE="JavaS cript">

    <!-- Begin
    var arrItems1 = new Array();
    var arrItemsGrp1 = new Array();

    arrItems1[3] = "Truck";
    arrItemsGrp1[3] = 1;
    arrItems1[4] = "Train";
    arrItemsGrp1[4] = 1;
    arrItems1[5] = "Car";
    arrItemsGrp1[5] = 1;

    arrItems1[6] = "Boat";
    arrItemsGrp1[6] = 2;
    arrItems1[7] = "Submarine" ;
    arrItemsGrp1[7] = 2;

    arrItems1[0] = "Planes";
    arrItemsGrp1[0] = 3;
    arrItems1[1] = "Ultralight ";
    arrItemsGrp1[1] = 3;
    arrItems1[2] = "Glider";
    arrItemsGrp1[2] = 3;

    var arrItems2 = new Array();
    var arrItemsGrp2 = new Array();

    arrItems2[21] = "747";
    arrItemsGrp2[21] = 0
    arrItems2[22] = "Cessna";
    arrItemsGrp2[22] = 0

    arrItems2[31] = "Kolb Flyer";
    arrItemsGrp2[31] = 1
    arrItems2[34] = "Kitfox";
    arrItemsGrp2[34] = 1

    arrItems2[35] = "Schwietzer Glider";
    arrItemsGrp2[35] = 2

    arrItems2[99] = "Chevy Malibu";
    arrItemsGrp2[99] = 5
    arrItems2[100] = "Lincoln LS";
    arrItemsGrp2[100] = 5
    arrItems2[57] = "BMW Z3";
    arrItemsGrp2[57] = 5

    arrItems2[101] = "F-150";
    arrItemsGrp2[101] = 3
    arrItems2[102] = "Tahoe";
    arrItemsGrp2[102] = 3

    arrItems2[103] = "Freight Train";
    arrItemsGrp2[103] = 4
    arrItems2[104] = "Passenger Train";
    arrItemsGrp2[104] = 4

    arrItems2[105] = "Oil Tanker";
    arrItemsGrp2[105] = 6
    arrItems2[106] = "Fishing Boat";
    arrItemsGrp2[106] = 6

    arrItems2[200] = "Los Angelas Class";
    arrItemsGrp2[200] = 7
    arrItems2[201] = "Kilo Class";
    arrItemsGrp2[201] = 7
    arrItems2[203] = "Seawolf Class";
    arrItemsGrp2[203] = 7

    var arrItems3 = new Array();
    var arrItemsGrp3 = new Array();

    arrItems3[3] = "Truck";
    arrItemsGrp3[3] = 1;
    arrItems3[4] = "Train";
    arrItemsGrp3[4] = 1;
    arrItems3[5] = "Car";
    arrItemsGrp3[5] = 1;

    arrItems3[6] = "Boat";
    arrItemsGrp3[6] = 2;
    arrItems3[7] = "Submarine" ;
    arrItemsGrp3[7] = 2;

    arrItems3[0] = "Planes";
    arrItemsGrp3[0] = 3;
    arrItems3[1] = "Ultralight ";
    arrItemsGrp3[1] = 3;
    arrItems3[2] = "Glider";
    arrItemsGrp3[2] = 3;

    var arrItems4 = new Array();
    var arrItemsGrp4 = new Array();

    arrItems4[21] = "747";
    arrItemsGrp4[21] = 0
    arrItems4[22] = "Cessna";
    arrItemsGrp4[22] = 0

    arrItems4[31] = "Kolb Flyer";
    arrItemsGrp4[31] = 1
    arrItems4[34] = "Kitfox";
    arrItemsGrp4[34] = 1

    arrItems4[35] = "Schwietzer Glider";
    arrItemsGrp4[35] = 2

    arrItems4[99] = "Chevy Malibu";
    arrItemsGrp4[99] = 5
    arrItems4[100] = "Lincoln LS";
    arrItemsGrp4[100] = 5
    arrItems4[57] = "BMW Z3";
    arrItemsGrp4[57] = 5

    arrItems4[101] = "F-150";
    arrItemsGrp4[101] = 3
    arrItems4[102] = "Tahoe";
    arrItemsGrp4[102] = 3

    arrItems4[103] = "Freight Train";
    arrItemsGrp4[103] = 4
    arrItems4[104] = "Passenger Train";
    arrItemsGrp4[104] = 4

    arrItems4[105] = "Oil Tanker";
    arrItemsGrp4[105] = 6
    arrItems4[106] = "Fishing Boat";
    arrItemsGrp4[106] = 6

    arrItems4[200] = "Los Angelas Class";
    arrItemsGrp4[200] = 7
    arrItems4[201] = "Kilo Class";
    arrItemsGrp4[201] = 7
    arrItems4[203] = "Seawolf Class";
    arrItemsGrp4[203] = 7

    function selectChange(co ntrol, controlToPopula te, ItemArray,
    GroupArray)
    {
    var myEle ;
    var x ;
    // Empty the second drop down box of any choices
    for (var q=controlToPopu late.options.le ngth;q>=0;q--)
    controlToPopula te.options[q]=null;
    if (control.name == "firstChoic e") {
    // Empty the third drop down box of any choices
    for (var q=myChoices.thi rdChoice.option s.length;q>=0;q--)
    myChoices.third Choice.options[q] = null;
    }
    // ADD Default Choice - in case there are no values
    myEle = document.create Element("option ") ;
    myEle.value = 0 ;
    myEle.text = "[SELECT]" ;
    controlToPopula te.add(myEle) ;
    // Now loop through the array of individual items
    // Any containing the same child id are added to
    // the second dropdown box
    for ( x = 0 ; x < ItemArray.lengt h ; x++ )
    {
    if ( GroupArray[x] == control.value )
    {
    myEle = document.create Element("option ") ;
    myEle.value = x ;
    myEle.text = ItemArray[x] ;
    controlToPopula te.add(myEle) ;
    }
    }
    }
    // End -->
    </script>

    </HEAD>

    <BODY>

    <form name=myChoices>
    <table align="center">
    <tr>
    <td>
    <SELECT id=firstChoice name=firstChoic e onchange="selec tChange(this,
    myChoices.secon dChoice, arrItems1, arrItemsGrp1);" >
    <option value=0 SELECTED>[SELECT]</option>
    <option value=1>Land</option>
    <option value=2>Sea</option>
    <option value=3>Air</option>
    </SELECT>
    </TD><TD>
    <SELECT id=secondChoice name=secondChoi ce onchange="selec tChange(this,
    myChoices.third Choice, arrItems2, arrItemsGrp2);" >
    </SELECT>
    <SELECT id=thirdChoice name=thirdChoic e>
    </SELECT>
    </TD>
    <td>
    <SELECT id=firstChoice name=firstChoic e onchange="selec tChange(this,
    myChoices.secon dChoice, arrItems3, arrItemsGrp3);" >
    <option value=0 SELECTED>[SELECT]</option>
    <option value=1>Land</option>
    <option value=2>Sea</option>
    <option value=3>Air</option>
    </SELECT><TD>
    <SELECT id=secondChoice name=secondChoi ce onchange="selec tChange(this,
    myChoices.third Choice, arrItems4, arrItemsGrp4);" >
    </SELECT>
    <SELECT id=thirdChoice name=thirdChoic e>
    </SELECT>
    </TD>
    <td>
    </TD>

    </TR>
    </TABLE>
    </form>
  • Lasse Reichstein Nielsen

    #2
    Re: Please help me.........

    knightmen@hotma il.com (Michael) writes:

    Please use a more descriptive subject. Everybody wants help here :)
    [color=blue]
    > I want to have more population dropdown boxes (see below script) but
    > it gives me an error on the line "for (var
    > q=myChoices.thi rdChoice.option s.length;q>=0;q--)
    > myChoices.third Choice.options[q] = null; "[/color]
    [color=blue]
    > Who can help me out!?[/color]

    It would probably help us if you tolds us *what* error it gives you.
    If nothing else, it would make it easier for us to help you, which
    also means more likely that you will be helped.

    You are counting down from "myChoices.thir dChoice.options .length".

    First of all, "myChoices" seems to be an undeclared global variable.
    In some browsers, it will refer to the form of that name. In others it
    won't. It is better to write
    document.forms['myChoices']
    to refer to that form.

    Anyway, you are starting one too high. Try starting from
    document.forms['myChoices'].elements['thirdChoice'].options.length - 1
    instead.

    /L
    --
    Lasse Reichstein Nielsen - lrn@hotpop.com
    Art D'HTML: <URL:http://www.infimum.dk/HTML/randomArtSplit. html>
    'Faith without judgement merely degrades the spirit divine.'

    Comment

    • Richard Cornford

      #3
      Re: Please help me.........

      "Lasse Reichstein Nielsen" <lrn@hotpop.com > wrote in message
      news:vfqye1dg.f sf@hotpop.com.. .[color=blue]
      > knightmen@hotma il.com (Michael) writes:[/color]
      <snip.
      [color=blue]
      > Anyway, you are starting one too high. Try starting from
      >document.for ms['myChoices'].elements['thirdChoice'].options.length - 1
      > instead.[/color]
      An approach to counting down in - for - loops that I quite like is to
      assign the length to the counter and then use the middle expression in
      the - for - statement to decrement the counter before it is first used:-

      for (var c = anyArrayLike.le ngth ; c-- ; ){
      //loop contents
      }

      The post-decrement in the middle expression mans that - c - is
      (anyArrayLike.l ength - 1) before it is first used but after it has been
      converted to boolean for the test. When the counter gets down to 0 the
      middle expression type-converts to boolean false and terminates the for
      loop. Making the final expression that would normally be
      incrementing/decrementing unnecessary and empty.

      Richard.


      Comment

      Working...