473,573 Members | 2,836 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Passing select options via JavaScript from one HTML page to another...

Hello,

I am trying to get my select options (courses) passed correctly from
the following URL: http://www.dslextreme.com/users/kevi...lectBoxes.html

I am having difficulty getting the courses to pass the correct option
value and then be displayed at the following URL:
http://www.dslextreme.com/users/kevi...ctResults.html

I am passing countries, products, and courses. The first two display
as they should on the subsequent page, but the courses retains my loop
variable rather than the value as I would like. Additionally, I
notice that the variable is not being split from the products.

I welcome anyone to review the code from each to see what I can do to
correct things.

Thanks much,

Kevin
Jul 20 '05 #1
12 6525
In article <63************ **************@ posting.google. com>,
ma*********@go. com says...
Hello,

I am trying to get my select options (courses) passed correctly from
the following URL: http://www.dslextreme.com/users/kevi...lectBoxes.html

I am having difficulty getting the courses to pass the correct option
value and then be displayed at the following URL:
http://www.dslextreme.com/users/kevi...ctResults.html

I am passing countries, products, and courses. The first two display
as they should on the subsequent page, but the courses retains my loop
variable rather than the value as I would like. Additionally, I
notice that the variable is not being split from the products.


This may help:
http://hyweljenkins.co.uk/programmin...avaScript&id=5

--
Hywel I do not eat quiche
http://hyweljenkins.co.uk/
http://hyweljenkins.co.uk/mfaq.php
Jul 20 '05 #2
DU
Kevin Lyons wrote:
Hello,

I am trying to get my select options (courses) passed correctly from
the following URL: http://www.dslextreme.com/users/kevi...lectBoxes.html

I am having difficulty getting the courses to pass the correct option
value and then be displayed at the following URL:
http://www.dslextreme.com/users/kevi...ctResults.html

I am passing countries, products, and courses. The first two display
as they should on the subsequent page, but the courses retains my loop
variable rather than the value as I would like. Additionally, I
notice that the variable is not being split from the products.

I welcome anyone to review the code from each to see what I can do to
correct things.

Thanks much,

Kevin


You're using 32 array variables for your code when right now, I think
you only need 5 arrays and that's it. I do not understand what you do
with your 8
var Top_Database = new Array();
var Top_Development = new Array();
var Top_Server = new Array();
var Top_Application s = new Array();

var Blank_Database = new Array();
var Blank_Developme nt = new Array();
var Blank_Server = new Array();
var Blank_Applicati ons = new Array();
arrays. You declare these 8 arrays but you never define them nor use
them. Avoid this furthermore if your script functions already (handle a
lot of variables, arrays) demand a lot of cpu and RAM from the user's
system resources.

Don't you see that there is a lot of repetitive elements in your script
code (24 other arrays)? Everytime there is elements repeating
themselves, then a loop can optimize the code and make it more compact,
efficient.
I'm pretty much convinced you can replace these 24 arrays by 5 arrays
which can/will combine themselves dynamically to generate the values in
your <select name="courses" ...>

Absolutely avoid eval() calls in your code; this is widely known to be
inferior, slow, buggy, bad or simply wrong from a programming perspective.
Also, avoid as much as possible document.write( ) calls. 99.9% such calls
can be replaced by DOM attributes and methods which are giving far more
DOM and script powers to a page.

Quote all your attribute values everywhere: you avoid errors just by
doing so and you help speed up a bit parsing. E.g. in your code:
<td width=25%> will be read and parsed as a td which requested width is
25 pixels, not 25% of its parent container.

http://www.htmlhelp.org/faq/html/basics.html#quotes
"By default, SGML requires that all attribute values be delimited using
either double quotation marks (...)"
http://www.w3.org/TR/html4/intro/sgm...tml#attributes
Why attribute values should always be quoted in HTML
http://www.cs.tut.fi/~jkorpela/qattr.html

if (event.srcEleme nt.tagName == "INPUT")
event.srcElemen t.className = color;
Avoid coding for MSIE only; your page can comply entirely with W3C web
standards and work flawlessly in W3C web standards compliant browsers.
srcElement is not a recognized attribute of the DOM 2 Event (target is);
event is not an recognized object in W3C DOM 2 Events. With just a bit
of cross-browser code, you can make your page work in at least 25 other
browsers here.

Knowing the default values of attributes can reduce tag soup of a page.
The default horizontal alignment of <td> cells is left. So,
<td align="left" ...> is 99% of the time an useless, pointless
declaration. Same thing with knowing which css properties are inherited
and what are the default values in browsers: knowing so often means you
don't even have to declare them. Good and wise coding techniques of this
sort help make a page far more efficient, fast, robust, avoiding
problems or crashes, makes a page more interoperable, etc..

Use a doctype declaration for your html file and validate your webpage.
Doing so is in your best interests so that your page renders
consistently on W3C web standards compliant browsers and that it
interoperates on different media, os, web-aware devices, etc..

W3C validator
http://validator.w3.org/

Activating the Right Layout Mode Using the Doctype Declaration
http://www.hut.fi/u/hsivonen/doctype.html

List of valid doctype
http://www.w3.org/QA/2002/04/valid-dtd-list.html

My Web site is standard! And yours? by W3C Quality Assurance
http://www.w3.org/QA/2002/04/Web-Quality

Why we won't help you
http://diveintomark.org/archives/200..._wont_help_you

DU
--
Javascript and Browser bugs:
http://www10.brinkster.com/doctorunclear/
- Resources, help and tips for Netscape 7.x users and Composer
- Interactive demos on Popup windows, music (audio/midi) in Netscape 7.x
http://www10.brinkster.com/doctorunc...e7Section.html

Jul 20 '05 #3
ma*********@go. com (Kevin Lyons) writes:
I am having difficulty getting the courses to pass the correct option
value and then be displayed at the following URL:
http://www.dslextreme.com/users/kevi...ctResults.html


I can see some problems.

1: <SCRIPT LANGUAGE="JavaS cript">
In HTML 4, the type attribute is required on script tags:
<script type="text/javascript">

2: onload="acceptP arams(this.loca tion.search)"
The location object is not a property of the body element (not in all
browsers, at least), so drop "this.".

3: Start = Stop+2+"product s".length
This doesn't associate as you thinkt it does. Add parentheses:
Start = Stop+2+("produc ts".length)
Same for the next Start.

4: Stop = Invar.length
So the products go on until the end of the string. That's the reason it's
not split. You don't split it.

4: You assume that the parameters are passed in the order: country,
products, courses. There is nothing in the HTML or HTTP definitions that
require a form's elements passed with the GET method to be in the same
order as on the page.

What I would do:
---
function acceptParams(pa ramStr) {
var params = new Object();
var pairs = paramStr.substr ing(1).split("& ");
for (var i in pairs) {
var pair = pairs[i].split("=");
params[pair[0]] = unescape(pair[1].replace(/\+/g," "));
}
document.write( "Countries = " + params.Countrie s + "<br>");
document.write( "Products = " + params.products + "<br>");
document.write( "Courses = " + params.courses + "<br>");
}
---
(This is not a completely general parsing of passed form elements. It
doesn't handle multiple elements with the same name (like checkboxes
or radiogroups), and it doesn't handle input with type="image" (which
sends "name.x=42&name .y=27" or similar).

/L
--
Lasse Reichstein Nielsen - lr*@hotpop.com
Art D'HTML: <URL:http://www.infimum.dk/HTML/randomArtSplit. html>
'Faith without judgement merely degrades the spirit divine.'
Jul 20 '05 #4
Lasse,

Thanks for your suggestions; they worked great!

First of all, this is for an intranet site working in an IE
environment only, but I now have a few errors with other things that I
am trying to implement (which need fixing):

One, I still need to be able to pass in the correct courses value to
their results page. How can I populate the correct option values
within the JavaScript code?

Two, I want to add hidden div tag code that will allow the use to
suggest a course if not listed within the drop-down list. If the 15th
element in the array is selected then the div should appear allowing
for input. This is not quite working correctly. For now, the div
code has been appearing whether or not the 15th element has been
selected.

Three, I am trying to add capabilities when clicking the text to the
right of the radio buttons that will accomplish the same as the actual
selection of the radio buttons to populate the courses accordingly.

Can you or another assist with my code? Again the pages can be viewed
at the following URL:
http://www.dslextreme.com/users/kevi...lectBoxes.html

Thanks much,

Kevin
Lasse Reichstein Nielsen <lr*@hotpop.com > wrote in message news:<ad******* ***@hotpop.com> ...
ma*********@go. com (Kevin Lyons) writes:
I am having difficulty getting the courses to pass the correct option
value and then be displayed at the following URL:
http://www.dslextreme.com/users/kevi...ctResults.html


I can see some problems.

1: <SCRIPT LANGUAGE="JavaS cript">
In HTML 4, the type attribute is required on script tags:
<script type="text/javascript">

2: onload="acceptP arams(this.loca tion.search)"
The location object is not a property of the body element (not in all
browsers, at least), so drop "this.".

3: Start = Stop+2+"product s".length
This doesn't associate as you thinkt it does. Add parentheses:
Start = Stop+2+("produc ts".length)
Same for the next Start.

4: Stop = Invar.length
So the products go on until the end of the string. That's the reason it's
not split. You don't split it.

4: You assume that the parameters are passed in the order: country,
products, courses. There is nothing in the HTML or HTTP definitions that
require a form's elements passed with the GET method to be in the same
order as on the page.

What I would do:
---
function acceptParams(pa ramStr) {
var params = new Object();
var pairs = paramStr.substr ing(1).split("& ");
for (var i in pairs) {
var pair = pairs[i].split("=");
params[pair[0]] = unescape(pair[1].replace(/\+/g," "));
}
document.write( "Countries = " + params.Countrie s + "<br>");
document.write( "Products = " + params.products + "<br>");
document.write( "Courses = " + params.courses + "<br>");
}
---
(This is not a completely general parsing of passed form elements. It
doesn't handle multiple elements with the same name (like checkboxes
or radiogroups), and it doesn't handle input with type="image" (which
sends "name.x=42&name .y=27" or similar).

/L

Jul 20 '05 #5
Hello,

I have since made successful modifications to the code for my third
request:

"Three, I am trying to add capabilities when clicking the text to the
right of the radio buttons that will accomplish the same as the actual
selection of the radio buttons to populate the courses accordingly."

I have also uploaded the corrections to the same URL.

Requests one and two are a bit more challenging; if anyone can assist
that would be great!!

Again, the pages can be viewed at the following URL:
http://www.dslextreme.com/users/kevi...lectBoxes.html

Thanks much,

Kevin
Lasse Reichstein Nielsen <lr*@hotpop.com > wrote in message news:<ad******* ***@hotpop.com> ...
ma*********@go. com (Kevin Lyons) writes:
I am having difficulty getting the courses to pass the correct option
value and then be displayed at the following URL:
http://www.dslextreme.com/users/kevi...ctResults.html


I can see some problems.

1: <SCRIPT LANGUAGE="JavaS cript">
In HTML 4, the type attribute is required on script tags:
<script type="text/javascript">

2: onload="acceptP arams(this.loca tion.search)"
The location object is not a property of the body element (not in all
browsers, at least), so drop "this.".

3: Start = Stop+2+"product s".length
This doesn't associate as you thinkt it does. Add parentheses:
Start = Stop+2+("produc ts".length)
Same for the next Start.

4: Stop = Invar.length
So the products go on until the end of the string. That's the reason it's
not split. You don't split it.

4: You assume that the parameters are passed in the order: country,
products, courses. There is nothing in the HTML or HTTP definitions that
require a form's elements passed with the GET method to be in the same
order as on the page.

What I would do:
---
function acceptParams(pa ramStr) {
var params = new Object();
var pairs = paramStr.substr ing(1).split("& ");
for (var i in pairs) {
var pair = pairs[i].split("=");
params[pair[0]] = unescape(pair[1].replace(/\+/g," "));
}
document.write( "Countries = " + params.Countrie s + "<br>");
document.write( "Products = " + params.products + "<br>");
document.write( "Courses = " + params.courses + "<br>");
}
---
(This is not a completely general parsing of passed form elements. It
doesn't handle multiple elements with the same name (like checkboxes
or radiogroups), and it doesn't handle input with type="image" (which
sends "name.x=42&name .y=27" or similar).

/L

Jul 20 '05 #6
ma*********@go. com (Kevin Lyons) writes:
First of all, this is for an intranet site working in an IE
environment only, but I now have a few errors with other things that I
am trying to implement (which need fixing):
I'll be testing in Opera 7.2, but I hope the results will work in IE
too :)
One, I still need to be able to pass in the correct courses value to
their results page. How can I populate the correct option values
within the JavaScript code?
What is the correct courses value?
As it is now, selecting a country and clicking on a product category adds
one course. However, there is also a line with some Javascript, which looks
like a bug.

Checking... it is a bug.
You write:
---
<option>-- Available Courses --
<script language="javas cript" type="text/javascript">
for (counter=0; ...
---
While the end tag for option elements are optional, leaving them out
can be ambiguous. Inside an option tag, you are only allowed to have
*text*, not HTML. The script tag is technically inside the option element,
so it is ignored, and the content is made part of the option text. If
you add </option> at the end of the first line, it seems to work to me.

I.e., it is an HTML problem.

The script in the tag isn't too good either:
---
for (counter=0; counter < Australia_Datab ase.length; counter++) {
document.write( "<option value=counter>" );
}
---
You write 16 times "<option value=counter>" , options with the same
value and no text. What you propbably meant to write is:
document.write( "<option value='" + counter + "'>" +
Australia_Datab ase[counter] + "<\/option>");

(as a style note, I would drop the blank option in the country select, it
looks weird, and is confuzing when you select using the keyboard).
Two, I want to add hidden div tag code that will allow the use to
suggest a course if not listed within the drop-down list. If the 15th
element in the array is selected then the div should appear allowing
for input. This is not quite working correctly. For now, the div
code has been appearing whether or not the 15th element has been
selected.
I guess the culprit is this function:
---
function selectCourse() {
if(document.ora cle.courses.opt ions[15].selected = true) {
Hide.style.disp lay="inline";
}
else {
Hide.style.disp lay="none";
}
}
---
Where do I begin?

I assume Hide is a global variable declared somewhere else to refer
to the div with id="hide". Ok, I did, but now I have looked for it,
and it isn't declared anywhere.

You use "=" for comparison. It is actually assignment, so every time
you change the selection, the element number 15 is selected again. For
"Applicatio n Server", that is "Online Library", not "Suggest a
Course". You have two lines at the begining of the select ("Select
course" and a blank option (I don't like blank options!), so the
16th option you add has selectedIndex 17.

This is also highly unstable code, since it depends on all categories
having the same number of entries. What happens when a new Database
coimes out, so there are 16 databases?

Finally, the div itself is placed inside a table, wrapping a tr tag.
That is not a legal position for a div, which you would know if your
code validated (get your HTML code validating! It saves you and us
so much trouble!). What you can do, is to move the id="hide" onto
the tr tag itself: <tr id="hide" style="display: none;">, and drop the div.

I recommend the following function:
---
function selectCourse() {
var Hide = document.getEle mentById("hide" );
var selRef = document.forms['oracle'].elements['courses'];
if(selRef.selec tedIndex == selRef.options. length-1) {
Hide.style.disp lay="";
} else {
Hide.style.disp lay="none";
}
}
---
Three, I am trying to add capabilities when clicking the text to the
right of the radio buttons that will accomplish the same as the actual
selection of the radio buttons to populate the courses accordingly.


I don't think your changeRadio function is working. It might change
the "checked" property of the radiobutton, but it won't call its
onclick handler, so the courses aren't updated when you click on the
label. Also, it uses "eval", which should almost never be used in
practice.

You call it as:
onClick="change Radio('document .oracle.product s[1]')"
Just remove the quotes, and send a reference to the element itself:
onClick="change Radio(document. forms['oracle'].elements['products'][1])"
Then the code for the function would be:
function changeRadio(val ) {
val.click();
}
It is a radio group. You don't want to be able to unselect all the elements,
so no need for "val.checke d = !val.checked". Also, this function is so
simple, that you might as well inline it.

Instead of using a span, you should use the element that is meant for
exactly this: label.

<label style="cursor:p ointer;cursor:h and;"
onclick="docume nt.forms['oracle'].elements['products'][0].click()">
<input type="radio" name="products" value="Database " onClick="loadOp tions()">
Database
</label>

(I always write my form references out with "forms" and "elements"
collections.)

You also use "eval" in one other place:
category = eval(selectChoi ce + "_" + radioChoice);
This can be changed to the much faster and non-eval-using:
category = window[selectChoice + "_" + radioChoice];

Good luck
/L
--
Lasse Reichstein Nielsen - lr*@hotpop.com
Art D'HTML: <URL:http://www.infimum.dk/HTML/randomArtSplit. html>
'Faith without judgement merely degrades the spirit divine.'
Jul 20 '05 #7
I have made more modifications to the code. The Div code is still
giving me problems. It is still displaying at all times. Only when
any "Suggest a Course" option is selected should the Div appear
allowing for input. This isn't yet working correctly. Likewise, the
Div code should disappear when a different course is selected.

I have the courses value now getting passed to the results page;
however, how can I pass the associated array text value instead of the
number of the array?

Lastly, if the text for any of the radio buttons is reselected (making
the radio button unchecked), then no options should be shown within
the courses select options with the exception of the "-- Available
Courses --" option. Similarly, if one presses the reset button, I
would prefer the courses select options to display only the default!

Please let me know if anyone has any questions.

Thanks much,

Kevin
ma*********@go. com (Kevin Lyons) wrote in message news:<63******* *************** ****@posting.go ogle.com>...
Hello,

I have since made successful modifications to the code for my third
request:

"Three, I am trying to add capabilities when clicking the text to the
right of the radio buttons that will accomplish the same as the actual
selection of the radio buttons to populate the courses accordingly."

I have also uploaded the corrections to the same URL.

Requests one and two are a bit more challenging; if anyone can assist
that would be great!!

Again, the pages can be viewed at the following URL:
http://www.dslextreme.com/users/kevi...lectBoxes.html

Thanks much,

Kevin
Lasse Reichstein Nielsen <lr*@hotpop.com > wrote in message news:<ad******* ***@hotpop.com> ...
ma*********@go. com (Kevin Lyons) writes:
I am having difficulty getting the courses to pass the correct option
value and then be displayed at the following URL:
http://www.dslextreme.com/users/kevi...ctResults.html


I can see some problems.

1: <SCRIPT LANGUAGE="JavaS cript">
In HTML 4, the type attribute is required on script tags:
<script type="text/javascript">

2: onload="acceptP arams(this.loca tion.search)"
The location object is not a property of the body element (not in all
browsers, at least), so drop "this.".

3: Start = Stop+2+"product s".length
This doesn't associate as you thinkt it does. Add parentheses:
Start = Stop+2+("produc ts".length)
Same for the next Start.

4: Stop = Invar.length
So the products go on until the end of the string. That's the reason it's
not split. You don't split it.

4: You assume that the parameters are passed in the order: country,
products, courses. There is nothing in the HTML or HTTP definitions that
require a form's elements passed with the GET method to be in the same
order as on the page.

What I would do:
---
function acceptParams(pa ramStr) {
var params = new Object();
var pairs = paramStr.substr ing(1).split("& ");
for (var i in pairs) {
var pair = pairs[i].split("=");
params[pair[0]] = unescape(pair[1].replace(/\+/g," "));
}
document.write( "Countries = " + params.Countrie s + "<br>");
document.write( "Products = " + params.products + "<br>");
document.write( "Courses = " + params.courses + "<br>");
}
---
(This is not a completely general parsing of passed form elements. It
doesn't handle multiple elements with the same name (like checkboxes
or radiogroups), and it doesn't handle input with type="image" (which
sends "name.x=42&name .y=27" or similar).

/L

Jul 20 '05 #8
Lasse,

Thanks so much for your help; it has been invaluable!! I have
uploaded the latest version, but a few things remain to be resolved:

1) I am trying to get the reset to function correctly by making all
reset including making your <tr id=hide> disappear if "suggest a
course" had been selected. The reset I have coded does what I want
but only after clicking it twice. Can it be coded to reset all after
one click?

2) Another on Experts-Exchange had suggested that I "don't use a
'static' index for comparison (unless it's '0') for the courses data
validation on the suggest input box because if you change the number
of available options, you will crash -- and six months from now you
will not know why:

so change this:
if(document.ora cle.courses.opt ions[18].selected)
{
to:
if(document.ora cle.courses.opt ions[somePassedNdx].value ==
'someFlag')
{:

How would I code the suggested above variables if the suggest course
is contained for each country? Here is the latest portion of this
code:

if (data.courses.o ptions[18].selected) {
if (data.suggest.v alue == "") {
alert("Please enter a suggested course name.");
data.suggest.fo cus();
return false;
}
}

3) The same individual mentions the following to resolve my course
name passing for the results page:

"You asked, 'can I pass the associated array text value instead of the
number of the array'. Simply, create a hidden field, pass the text
value to the hidden field -- pick up the hidden field in the receiving
page and ignore the passed index"

How do I go about writing the hidden field portion so that it doesn't
matter which country array of data had been used?

Thanks again for all of your help; I am almost finished now!

Kevin
Lasse Reichstein Nielsen <lr*@hotpop.com > wrote in message news:<vf******* ***@hotpop.com> ...
ma*********@go. com (Kevin Lyons) writes:
First of all, this is for an intranet site working in an IE
environment only, but I now have a few errors with other things that I
am trying to implement (which need fixing):


I'll be testing in Opera 7.2, but I hope the results will work in IE
too :)
One, I still need to be able to pass in the correct courses value to
their results page. How can I populate the correct option values
within the JavaScript code?


What is the correct courses value?
As it is now, selecting a country and clicking on a product category adds
one course. However, there is also a line with some Javascript, which looks
like a bug.

Checking... it is a bug.
You write:
---
<option>-- Available Courses --
<script language="javas cript" type="text/javascript">
for (counter=0; ...
---
While the end tag for option elements are optional, leaving them out
can be ambiguous. Inside an option tag, you are only allowed to have
*text*, not HTML. The script tag is technically inside the option element,
so it is ignored, and the content is made part of the option text. If
you add </option> at the end of the first line, it seems to work to me.

I.e., it is an HTML problem.

The script in the tag isn't too good either:
---
for (counter=0; counter < Australia_Datab ase.length; counter++) {
document.write( "<option value=counter>" );
}
---
You write 16 times "<option value=counter>" , options with the same
value and no text. What you propbably meant to write is:
document.write( "<option value='" + counter + "'>" +
Australia_Datab ase[counter] + "<\/option>");

(as a style note, I would drop the blank option in the country select, it
looks weird, and is confuzing when you select using the keyboard).
Two, I want to add hidden div tag code that will allow the use to
suggest a course if not listed within the drop-down list. If the 15th
element in the array is selected then the div should appear allowing
for input. This is not quite working correctly. For now, the div
code has been appearing whether or not the 15th element has been
selected.


I guess the culprit is this function:
---
function selectCourse() {
if(document.ora cle.courses.opt ions[15].selected = true) {
Hide.style.disp lay="inline";
}
else {
Hide.style.disp lay="none";
}
}
---
Where do I begin?

I assume Hide is a global variable declared somewhere else to refer
to the div with id="hide". Ok, I did, but now I have looked for it,
and it isn't declared anywhere.

You use "=" for comparison. It is actually assignment, so every time
you change the selection, the element number 15 is selected again. For
"Applicatio n Server", that is "Online Library", not "Suggest a
Course". You have two lines at the begining of the select ("Select
course" and a blank option (I don't like blank options!), so the
16th option you add has selectedIndex 17.

This is also highly unstable code, since it depends on all categories
having the same number of entries. What happens when a new Database
coimes out, so there are 16 databases?

Finally, the div itself is placed inside a table, wrapping a tr tag.
That is not a legal position for a div, which you would know if your
code validated (get your HTML code validating! It saves you and us
so much trouble!). What you can do, is to move the id="hide" onto
the tr tag itself: <tr id="hide" style="display: none;">, and drop the div.

I recommend the following function:
---
function selectCourse() {
var Hide = document.getEle mentById("hide" );
var selRef = document.forms['oracle'].elements['courses'];
if(selRef.selec tedIndex == selRef.options. length-1) {
Hide.style.disp lay="";
} else {
Hide.style.disp lay="none";
}
}
---
Three, I am trying to add capabilities when clicking the text to the
right of the radio buttons that will accomplish the same as the actual
selection of the radio buttons to populate the courses accordingly.


I don't think your changeRadio function is working. It might change
the "checked" property of the radiobutton, but it won't call its
onclick handler, so the courses aren't updated when you click on the
label. Also, it uses "eval", which should almost never be used in
practice.

You call it as:
onClick="change Radio('document .oracle.product s[1]')"
Just remove the quotes, and send a reference to the element itself:
onClick="change Radio(document. forms['oracle'].elements['products'][1])"
Then the code for the function would be:
function changeRadio(val ) {
val.click();
}
It is a radio group. You don't want to be able to unselect all the elements,
so no need for "val.checke d = !val.checked". Also, this function is so
simple, that you might as well inline it.

Instead of using a span, you should use the element that is meant for
exactly this: label.

<label style="cursor:p ointer;cursor:h and;"
onclick="docume nt.forms['oracle'].elements['products'][0].click()">
<input type="radio" name="products" value="Database " onClick="loadOp tions()">
Database
</label>

(I always write my form references out with "forms" and "elements"
collections.)

You also use "eval" in one other place:
category = eval(selectChoi ce + "_" + radioChoice);
This can be changed to the much faster and non-eval-using:
category = window[selectChoice + "_" + radioChoice];

Good luck
/L

Jul 20 '05 #9
Lasse,

Additionally, for the reset, I would like all of the options within
the select courses list to clear but for the -- Available Courses --
option only, such as when one originally loads the page.

Less confusion this way.

Thanks,

Kevin
ma*********@go. com (Kevin Lyons) wrote in message news:<63******* *************** ****@posting.go ogle.com>...
I have made more modifications to the code. The Div code is still
giving me problems. It is still displaying at all times. Only when
any "Suggest a Course" option is selected should the Div appear
allowing for input. This isn't yet working correctly. Likewise, the
Div code should disappear when a different course is selected.

I have the courses value now getting passed to the results page;
however, how can I pass the associated array text value instead of the
number of the array?

Lastly, if the text for any of the radio buttons is reselected (making
the radio button unchecked), then no options should be shown within
the courses select options with the exception of the "-- Available
Courses --" option. Similarly, if one presses the reset button, I
would prefer the courses select options to display only the default!

Please let me know if anyone has any questions.

Thanks much,

Kevin
ma*********@go. com (Kevin Lyons) wrote in message news:<63******* *************** ****@posting.go ogle.com>...
Hello,

I have since made successful modifications to the code for my third
request:

"Three, I am trying to add capabilities when clicking the text to the
right of the radio buttons that will accomplish the same as the actual
selection of the radio buttons to populate the courses accordingly."

I have also uploaded the corrections to the same URL.

Requests one and two are a bit more challenging; if anyone can assist
that would be great!!

Again, the pages can be viewed at the following URL:
http://www.dslextreme.com/users/kevi...lectBoxes.html

Thanks much,

Kevin
Lasse Reichstein Nielsen <lr*@hotpop.com > wrote in message news:<ad******* ***@hotpop.com> ...
ma*********@go. com (Kevin Lyons) writes:

> I am having difficulty getting the courses to pass the correct option
> value and then be displayed at the following URL:
> http://www.dslextreme.com/users/kevi...ctResults.html

I can see some problems.

1: <SCRIPT LANGUAGE="JavaS cript">
In HTML 4, the type attribute is required on script tags:
<script type="text/javascript">

2: onload="acceptP arams(this.loca tion.search)"
The location object is not a property of the body element (not in all
browsers, at least), so drop "this.".

3: Start = Stop+2+"product s".length
This doesn't associate as you thinkt it does. Add parentheses:
Start = Stop+2+("produc ts".length)
Same for the next Start.

4: Stop = Invar.length
So the products go on until the end of the string. That's the reason it's
not split. You don't split it.

4: You assume that the parameters are passed in the order: country,
products, courses. There is nothing in the HTML or HTTP definitions that
require a form's elements passed with the GET method to be in the same
order as on the page.

What I would do:
---
function acceptParams(pa ramStr) {
var params = new Object();
var pairs = paramStr.substr ing(1).split("& ");
for (var i in pairs) {
var pair = pairs[i].split("=");
params[pair[0]] = unescape(pair[1].replace(/\+/g," "));
}
document.write( "Countries = " + params.Countrie s + "<br>");
document.write( "Products = " + params.products + "<br>");
document.write( "Courses = " + params.courses + "<br>");
}
---
(This is not a completely general parsing of passed form elements. It
doesn't handle multiple elements with the same name (like checkboxes
or radiogroups), and it doesn't handle input with type="image" (which
sends "name.x=42&name .y=27" or similar).

/L

Jul 20 '05 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
3522
by: Xerxes | last post by:
Hi, how can I pass the returned value from Javascript to PHP? I have: ------------------------------------------------------------------------ ------ if ( x>y) {
4
6423
by: point | last post by:
Hello there... I'm a PHP programmer and starting to learn JS... I have a following problem.... I have 3 select boxes! one is hotel one is destination and one is country... if someone clicks selects the country then the destination select box shows the destinations in that country and further if he chooses destination all
1
4586
by: Kevin Lyons | last post by:
Hello, I am trying to get all of my form elements passed correctly from the following URL: http://www.dslextreme.com/users/kevinlyons/selectBoxes.html to the following URL: http://www.dslextreme.com/users/kevinlyons/selectResults.html I am passing name, email, countries, cities, products, courses, etc. The others display as they should...
2
2525
by: Richard | last post by:
**** Post for FREE via your newsreader at post.usenet.com **** HI, I am working on a project where I need to input data to a (local) HTML page using multiple form elements, such as text, radio, checkbox, and dropdown. When the form Submit button is clicked, I then need the input data either written to another location on the same page, or...
7
3525
by: Dave A | last post by:
I have two events in a form that I am passing. One is to a javascript function, the other is to the same .asp page only with another action to show different data. Onchange is calls the function updateclasses, which in turn reloads another drop-down list. It also reloads the .asp page, which refreshes the data. My problem is that it...
4
4655
by: Pasquale | last post by:
Hello, I wondering if there is a way to dynamically update a select list with javascript from a database query without having to reload the page to update the list?
7
6223
by: srt5k | last post by:
I have a web page with 2 html multiple select boxes on it, and I use javascript to dynamicaly copy options from one box to another, before deleting the option from the first box. My issue is that in IE 7 more often than not after the option value has been deleted form.selone.options = null; the select box resets to the first item in...
16
2735
by: Richard Maher | last post by:
Hi, I have this Applet-hosted Socket connection to my server and in an ONevent/function I am retrieving all these lovely rows from the server and inserting them into the Select-List. (The on screen appearance of the Select List grows for the first 5 rows then the scroll bar appears if there's more). So far so good. . . The problem is...
11
4490
by: Richard Maher | last post by:
Hi, I have read many of the copius entries on the subject of IE performance (or the lack thereof) when populating Select Lists. I don't mind the insert performance so much, (I get 100x120byte rows inserted/sec up to 500, and 100rows/6secs up to 3000, which isn't great but then the Row Count is clicking away for the user to see and they...
0
7996
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. ...
0
8191
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that...
1
5573
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes...
0
5284
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert...
0
3724
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in...
0
3723
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
2185
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
1
1289
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
0
1029
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.