Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > HTML > dynamic drop down menu (part 2)...

Reply
Thread Tools

dynamic drop down menu (part 2)...

 
 
firstcustomer@gmail.com
Guest
Posts: n/a
 
      02-21-2006
Further to my earlier post, I've found something that does partly what
I'm doing, but there are two issues:

1) There is an error in the script. Being a Javascript newbie, I've no
idea what the problem is.

2) I don't know how to re-program the script so that it opens up a url
depending on the choices made.

Here is the code (thanks Google!), I'd appreciate any help the you can
give.



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>Dynamic Dropdown Boxes</TITLE>
<META NAME="Generator" CONTENT="TextPad 3.0">
<META NAME="Author" CONTENT="Heidi Housten">
</HEAD>


<style>
body,table,td {font-family:verdana; font-size:9pt}
select {width:130;font-family:verdana}
pre { font-size:9pt }
</style>





<script language=javascript>
<!--
mainOpt = new Array()
subOpt = new Array()
mainOpt[0] = "How to relax"
subOpt [0] = new Array("","","")
mainOpt[1] = "Hot Spots"
subOpt [1] = new Array("Pick a Hot Spot","Mojave","Mars","Death
Valley","Mt. St. Helens")
mainOpt[2] = "Festivals"
subOpt [2] = new Array("Which One?","Mardi Gras","Cinco de
Mayo","Midsummer","Kite Festival")
mainOpt[3] = "Good Books"
subOpt [3] = new Array("Which Book?","N is for Noose","Four to
Score","A Grave Talent","Six of One")
mainOpt[4] = "Holidays"
subOpt [4] = new Array("Choose
Holiday","Cruises","Safaris","Ballooning","Adventu res")
function init()
{

fillCombo(document.forms.myMenus.mainMenu,mainOpt)
fillCombo(document.forms.myMenus.mainBox,mainOpt)
}

function fillCombo(cmbBox,aryMenu)
{
cmbBox.length = 0 // Clear out the current options
for (menuOpt in aryMenu)
{
cmbBox.options[cmbBox.length] = new
Option(aryMenu[menuOpt],cmbBox.length)
}
//Show first item if it is a drop down
cmbBox.selectedIndex=0
}
//-->
</script>

<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#FF0000" onload="init()">
<center>
<form name=myMenus>
<br>an example<br><br>
<!-- do select template for older browsers, some
can't change size dynamically -->
<select name=mainMenu
onchange="fillCombo(subMenu,subOpt[this.selectedIndex])">
<option>
<option>
<option>
<option>
<option>
<option>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;
</select><br><br>
<select name=subMenu>
<option>
<option>
<option>
<option>
<option>
<option>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;
</select>
<br>
</form>
</center>
</BODY>
</HTML>

 
Reply With Quote
 
 
 
 
Beauregard T. Shagnasty
Guest
Posts: n/a
 
      02-21-2006
http://www.velocityreviews.com/forums/(E-Mail Removed) wrote:

> Here is the code (thanks Google!), I'd appreciate any help the you can
> give.


I don't do JavaScript, but while we're here...

> <style>
> body,table,td {font-family:verdana; font-size:9pt}
> select {width:130;font-family:verdana}
> pre { font-size:9pt }
> </style>


9pt? Points are for printing. Many people won't be able to read that,
and may not be able to resize it in some browsers. Set your font-size to
100%.

http://www.xs4all.nl/~sbpoley/webmatters/fontsize.html
http://www.xs4all.nl/~sbpoley/webmatters/verdana.html

--
-bts
-Warning: I brake for lawn deer
 
Reply With Quote
 
 
 
 
Jonathan N. Little
Guest
Posts: n/a
 
      02-21-2006
(E-Mail Removed) wrote:
> Further to my earlier post, I've found something that does partly what
> I'm doing, but there are two issues:



The reason you did not get a satifactory response is that most feel that
what your are attempting is a 'bad idea'. But in the matter of
JavaScript (which must be enabled for the form to work, the other bad
idea) you have some obvious errors which I will show to you, educational
and all.
>
> 1) There is an error in the script. Being a Javascript newbie, I've no
> idea what the problem is.
>
> 2) I don't know how to re-program the script so that it opens up a url
> depending on the choices made.
>
> Here is the code (thanks Google!), I'd appreciate any help the you can
> give.
>
>
>
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">


Ugh, please look up doctype. This is ancient.
> <HTML>
> <HEAD>
> <TITLE>Dynamic Dropdown Boxes</TITLE>
> <META NAME="Generator" CONTENT="TextPad 3.0">
> <META NAME="Author" CONTENT="Heidi Housten">
> </HEAD>
>
>
> <style>
> body,table,td {font-family:verdana; font-size:9pt}
> select {width:130;font-family:verdana}
> pre { font-size:9pt }
> </style>
>
>
>
>


Next although ending JavaScript statements with a ';' is optional I
recommend it because is prevents errors when a single statement spans
more than on line. Also your can gang more than one statement on a
single line:
var aOpt=new Array; var oMine=new Object;

>
> <script language=javascript>
> <!--
> mainOpt = new Array()
> subOpt = new Array()
> mainOpt[0] = "How to relax"
> subOpt [0] = new Array("","","")
> mainOpt[1] = "Hot Spots"
> subOpt [1] = new Array("Pick a Hot Spot","Mojave","Mars","Death
> Valley","Mt. St. Helens")
> mainOpt[2] = "Festivals"
> subOpt [2] = new Array("Which One?","Mardi Gras","Cinco de
> Mayo","Midsummer","Kite Festival")
> mainOpt[3] = "Good Books"
> subOpt [3] = new Array("Which Book?","N is for Noose","Four to
> Score","A Grave Talent","Six of One")
> mainOpt[4] = "Holidays"
> subOpt [4] = new Array("Choose
> Holiday","Cruises","Safaris","Ballooning","Adventu res")
> function init()
> {
>
> fillCombo(document.forms.myMenus.mainMenu,mainOpt)
> fillCombo(document.forms.myMenus.mainBox,mainOpt)

Incorrect here-------------------------^^------^^^
should be:

fillCombo(document.forms.myMenus.subMenu,subOpt[0]);

to fill the second SELECT "subMenu" with the 1st array "subOpt[0]" upon
initialization.


> }
>
> function fillCombo(cmbBox,aryMenu)
> {
> cmbBox.length = 0 // Clear out the current options
> for (menuOpt in aryMenu)
> {
> cmbBox.options[cmbBox.length] = new
> Option(aryMenu[menuOpt],cmbBox.length)
> }
> //Show first item if it is a drop down
> cmbBox.selectedIndex=0
> }
> //-->
> </script>
>
> <BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#FF0000" onload="init()">
> <center>
> <form name=myMenus>
> <br>an example<br><br>
> <!-- do select template for older browsers, some
> can't change size dynamically -->
> <select name=mainMenu
> onchange="fillCombo(subMenu,subOpt[this.selectedIndex])">

-------------------------^^^
should pass the complete reference to the SELECT object:

onchange="fillCombo(this.form.subMenu, subOpt[this.selectedIndex]);



> <option>
> <option>
> <option>
> <option>
> <option>
> <option>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;
> </select><br><br>
> <select name=subMenu>
> <option>
> <option>
> <option>
> <option>
> <option>
> <option>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;
> </select>
> <br>
> </form>
> </center>
> </BODY>
> </HTML>
>


Probably more but that is what I found on quick examination.

--
Take care,

Jonathan
-------------------
LITTLE WORKS STUDIO
http://www.LittleWorksStudio.com
 
Reply With Quote
 
Neil Monk
Guest
Posts: n/a
 
      02-21-2006

"Beauregard T. Shagnasty" <(E-Mail Removed)> wrote in message
news:ReFKf.47721$(E-Mail Removed)...
> (E-Mail Removed) wrote:
>
>> Here is the code (thanks Google!), I'd appreciate any help the you can
>> give.

>
> I don't do JavaScript, but while we're here...
>
>> <style>
>> body,table,td {font-family:verdana; font-size:9pt}
>> select {width:130;font-family:verdana}
>> pre { font-size:9pt }
>> </style>

>
> 9pt? Points are for printing. Many people won't be able to read that,
> and may not be able to resize it in some browsers. Set your font-size to
> 100%.
>
> http://www.xs4all.nl/~sbpoley/webmatters/fontsize.html
> http://www.xs4all.nl/~sbpoley/webmatters/verdana.html

<snip>

Thanks for your comments. Again, this is not relevent to my project. If this
was for a "proper" website (as in to go on the WWW, and be used
cross-browser, then yes, I'd agree).

Thanks for your comments.
--
Neil


 
Reply With Quote
 
Neil Monk
Guest
Posts: n/a
 
      02-21-2006

"Jonathan N. Little" <(E-Mail Removed)> wrote in message
news:43fb3119$0$25075$(E-Mail Removed). ..
> (E-Mail Removed) wrote:
>> Further to my earlier post, I've found something that does partly what
>> I'm doing, but there are two issues:

>
>
> The reason you did not get a satifactory response is that most feel that
> what your are attempting is a 'bad idea'. But in the matter of JavaScript
> (which must be enabled for the form to work, the other bad idea) you have
> some obvious errors which I will show to you, educational and all.
>>
>> 1) There is an error in the script. Being a Javascript newbie, I've no
>> idea what the problem is.
>>
>> 2) I don't know how to re-program the script so that it opens up a url
>> depending on the choices made.
>>
>> Here is the code (thanks Google!), I'd appreciate any help the you can
>> give.
>>
>>
>>
>> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

>
> Ugh, please look up doctype. This is ancient.
>> <HTML>
>> <HEAD>
>> <TITLE>Dynamic Dropdown Boxes</TITLE>
>> <META NAME="Generator" CONTENT="TextPad 3.0">
>> <META NAME="Author" CONTENT="Heidi Housten">
>> </HEAD>
>>
>>
>> <style>
>> body,table,td {font-family:verdana; font-size:9pt}
>> select {width:130;font-family:verdana}
>> pre { font-size:9pt }
>> </style>
>>
>>
>>
>>

>
> Next although ending JavaScript statements with a ';' is optional I
> recommend it because is prevents errors when a single statement spans more
> than on line. Also your can gang more than one statement on a single line:
> var aOpt=new Array; var oMine=new Object;
>
>>
>> <script language=javascript>
>> <!--
>> mainOpt = new Array()
>> subOpt = new Array()
>> mainOpt[0] = "How to relax"
>> subOpt [0] = new Array("","","")
>> mainOpt[1] = "Hot Spots"
>> subOpt [1] = new Array("Pick a Hot Spot","Mojave","Mars","Death
>> Valley","Mt. St. Helens")
>> mainOpt[2] = "Festivals"
>> subOpt [2] = new Array("Which One?","Mardi Gras","Cinco de
>> Mayo","Midsummer","Kite Festival")
>> mainOpt[3] = "Good Books"
>> subOpt [3] = new Array("Which Book?","N is for Noose","Four to
>> Score","A Grave Talent","Six of One")
>> mainOpt[4] = "Holidays"
>> subOpt [4] = new Array("Choose
>> Holiday","Cruises","Safaris","Ballooning","Adventu res")
>> function init()
>> {
>>
>> fillCombo(document.forms.myMenus.mainMenu,mainOpt)
>> fillCombo(document.forms.myMenus.mainBox,mainOpt)

> Incorrect here-------------------------^^------^^^
> should be:
>
> fillCombo(document.forms.myMenus.subMenu,subOpt[0]);
>
> to fill the second SELECT "subMenu" with the 1st array "subOpt[0]" upon
> initialization.
>
>
>> }
>>
>> function fillCombo(cmbBox,aryMenu)
>> {
>> cmbBox.length = 0 // Clear out the current options
>> for (menuOpt in aryMenu)
>> {
>> cmbBox.options[cmbBox.length] = new
>> Option(aryMenu[menuOpt],cmbBox.length)
>> }
>> //Show first item if it is a drop down
>> cmbBox.selectedIndex=0
>> }
>> //-->
>> </script>
>>
>> <BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#FF0000" onload="init()">
>> <center>
>> <form name=myMenus>
>> <br>an example<br><br>
>> <!-- do select template for older browsers, some
>> can't change size dynamically -->
>> <select name=mainMenu
>> onchange="fillCombo(subMenu,subOpt[this.selectedIndex])">

> -------------------------^^^
> should pass the complete reference to the SELECT object:
>
> onchange="fillCombo(this.form.subMenu, subOpt[this.selectedIndex]);
>
>
>
>> <option>
>> <option>
>> <option>
>> <option>
>> <option>
>> <option>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;
>> </select><br><br>
>> <select name=subMenu>
>> <option>
>> <option>
>> <option>
>> <option>
>> <option>
>> <option>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;
>> </select>
>> <br>
>> </form>
>> </center>
>> </BODY>
>> </HTML>
>>

>
> Probably more but that is what I found on quick examination.
>

<snip>
Cheers Jonathan, I'll take a look when I get back in the office.
--
Neil


 
Reply With Quote
 
Beauregard T. Shagnasty
Guest
Posts: n/a
 
      02-21-2006
Neil Monk wrote:

> Thanks for your comments. Again, this is not relevent to my project.
> If this was for a "proper" website (as in to go on the WWW, and be
> used cross-browser, then yes, I'd agree).


I did not notice in your original post where you said this was not a WWW
page. We normally assume WWW unless you state otherwise, such as "this
is for an intranet" and maybe even "all my users are slaves to IE." Or
similar.

> Thanks for your comments.


Hopefully, every user of your intranet has perfect vision?

--
-bts
-Warning: I brake for lawn deer
 
Reply With Quote
 
Neil Monk
Guest
Posts: n/a
 
      02-21-2006
Beauregard T. Shagnasty wrote:
> Neil Monk wrote:
>
>> Thanks for your comments. Again, this is not relevent to my project.
>> If this was for a "proper" website (as in to go on the WWW, and be
>> used cross-browser, then yes, I'd agree).

>
> I did not notice in your original post where you said this was not a
> WWW page. We normally assume WWW unless you state otherwise, such as
> "this is for an intranet" and maybe even "all my users are slaves to
> IE." Or similar.
>


Unfortunatley they are all slaves to IE, only I have FF installed.

>> Thanks for your comments.

>
> Hopefully, every user of your intranet has perfect vision?



That is correct, well, not all of the hundreds of thousands of people in my
company, but the 10-15 people that would be using this, yes they have..
--
Neil


 
Reply With Quote
 
firstcustomer@gmail.com
Guest
Posts: n/a
 
      02-22-2006
Cheers Jonathan.

How do I get it to go to a url now? Can you help me with that too
please?

TIA, Neil.

 
Reply With Quote
 
Jonathan N. Little
Guest
Posts: n/a
 
      02-22-2006
(E-Mail Removed) wrote:

> Cheers Jonathan.
>
> How do I get it to go to a url now? Can you help me with that too
> please?
>
> TIA, Neil.
>

Please quote what you are referring to.

To do that you will need a third synchronized array of URLs for your
subOpt array where upon what is selected with subMenu you could set the
document's location to that URL.

Google 'javascript location object'

--
Take care,

Jonathan
-------------------
LITTLE WORKS STUDIO
http://www.LittleWorksStudio.com
 
Reply With Quote
 
firstcustomer@gmail.com
Guest
Posts: n/a
 
      02-23-2006

Jonathan N. Little wrote:
> (E-Mail Removed) wrote:
>
> > Cheers Jonathan.
> >
> > How do I get it to go to a url now? Can you help me with that too
> > please?
> >
> > TIA, Neil.
> >

> Please quote what you are referring to.
>
> To do that you will need a third synchronized array of URLs for your
> subOpt array where upon what is selected with subMenu you could set the
> document's location to that URL.
>
> Google 'javascript location object'
>
> --
> Take care,
>
> Jonathan
> -------------------
> LITTLE WORKS STUDIO
> http://www.LittleWorksStudio.com



Sorry, I was using the wrong option (I use USENET via Google Groyups
when I'm at work).

I'll have a look at what you've said.
--
Cheers, Neil

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Affecting a dynamically created drop down from another dynamically created drop down. msimmons ASP .Net 0 07-16-2009 03:17 PM
retrive preselected value in second drop down list from the first drop down list weiwei ASP .Net 0 01-05-2007 07:29 PM
Multiple select drop down poplulating sub drop down scott@dettcom.com Javascript 3 11-09-2006 07:50 PM
Auto Drop down a Drop Down List xxbmichae1@supergambler.com Javascript 5 11-23-2005 01:35 AM
New to .NET, can I have one drop down box control the data of another drop down box using a database? SirPoonga ASP .Net 2 01-07-2005 10:44 PM



Advertisments