Thank you for posting the script, I think my
question wasn't clear. I tried modifing the posted script but I'm
missing something.
What I would like to do is have the drop down
selection keeps it defined variable that is passed on
to database. Depending on which value from the drop
down box is selected, it will populate 2 different
text boxes with 2 different values.
Thanks for any help!
Here is the script:
<SCRIPT LANGUAGE="JavaScript">
var firstArray = new Array("('Select region','',true,true)",
//
Each field below will have 2 different time values
that will be added to the 2 text boxes.
//
"('this value selected and sent to script on submit'
value_1_for_text_box_1=5:00;
value_2_for_text_box_2=12:00;)",
"('Highway 1' value_1_for_text_box_1=11:00;
value_2_for_text_box_2=1:00;)",
"('Highway 2' value_1_for_text_box_1=7:00;
value_2_for_text_box_2=4:00;)",
"('highway 3' value_1_for_text_box_1=8:00;
value_2_for_text_box_2=22:00;)",
"('etc. for about 6 more locations')");
var secondArray = new Array("('Select region','',true,true)",
"('highway 4' value_1_for_text_box_1=3:00;
value_2_for_text_box_2=6:00;)",
"('highway 5'value_1_for_text_box_1=5:00;
value_2_for_text_box_2=17:00;)",
"('etc. for about 6 more locations')");
function populateLocation(inForm,selected) {
var selectedArray = eval(selected + "Array");
for (var i=0; i < selectedArray.length; i++) {
eval("inForm.location.options[i]=" + "new Option" +
selectedArray[i]);
}
}
</script>
<script type="text/javascript">
function addTimes(a,b,c) {
if (a.value != '') {
/* Validate input here to check time entered is
of correct hh:mm format and within required
range
Handle error if is isn't
*/
}
var t0 = a.value.split(':');
var t1 = b.value.split(':');
var t2 = c.value.split(':');
var m1 = +t0[1] + +t1[1];
var h1 = +t0[0] + +t1[0] + Math.floor(m1/60);
m1 = (m1 % 60);
b.value = h1 + ':' + m1;
var m2 = +t0[1] + +t2[1];
var h2 = +t0[0] + +t2[0] + Math.floor(m2/60);
m2 = (m2 % 60);
c.value = h2 + ':' + m2;
}
</script>
</head>
<body>
<form method="POST" action="results.asp" name="loc">
//Below is the value that needs to be passed on to the
ASP form. The value selected below will load a 2nd
drop down list that will contain the two variables for
the text boxes.
//
<select name="region"
onChange="populateLocation(document.loc,document.loc.region.options[document.loc.region.selectedIndex].value)">
<option selected value=''>Select Region</option>
<option value='Region1'>Region1</option>
<option value='Region2'>Region2</option>
</select>
//The drop down list below is populated by the 1st
drop down list script and contains 1 variable that is
passed to the Data Base and contains the two variables
that need to be added to the 2 text boxes.
//
<select name="location">
<option value=''>Choose Region 1st</option>
</select>
<input type="text" name="location_1"
size="20"></font>
<label for="inTime">
<input type="text" name="inTime"
onblur="addTimes(this,this.form.time1,
this.form.time2)"></label>
//The time value is inserted below from your script
using values from the second set of drop down boxes.
//
<input type="text" name="time1"
value="this is the part I am trying to script1"></label>
//The 2nd time value is inserted below from your
script using values from the second set of drop down
boxes.
//
<label for="inTime"><input type="text"
name="time2" value="this is the part I am trying to script2"></label>
<input type="submit" value="Submit" name="B1">
<input type="reset" value="Reset" name="B2">
</form>
> > What I am trying to do is have the value of each text box set by the
> > choice from the drop down box.
[quoted text clipped - 16 lines]
>
> Mick
Dan - 28 Nov 2004 23:02 GMT
I'm making some progress.
I can't seem to get this to take more than 1 variable. High_Way2 will
not pass on its time value.
Anyone see any glaring errors?
Thanks again for all the help.
<script language="JavaScript">
<!--
function Trip_Time(Traffic_Results) {
if (document.Traffic_Results.CIP_Diff.value == "High_Way1") {
document.Traffic_Results.display_time.value = "2:20";
if (document.Traffic_Results.CIP_Diff.value == "High_Way1") {
document.Traffic_Results.display_time2.value = "4:30";
if (document.Traffic_Results.CIP_Diff.value == "High_Way2") {
document.Traffic_Results.display_time.value = "2:20";
if (document.Traffic_Results.CIP_Diff.value == "High_Way2") {
document.Traffic_Results.display_time2.value = "4:30";
}
}
}
}
else {
document.Traffic_Results.display_time.value = "0:00";
document.Traffic_Results.display_time2.value = "0:00";
}
}
// -->
</SCRIPT>
</HEAD>
<BODY BGCOLOR="white">
<form name="Traffic_Results">
<select name="CIP_Diff" onChange="Trip_Time()">
<option value="choose" selected>Choose</option>
<option value="High_Way1">High Way 1</option>
<option value="High_Way2">High Way 2</option>
</select> <font size="-1">Starting Location</font>
<BR>
Time at Location <input type=text name="reported_time" size=5
value=""><br>
ETA 1 <input type=text name="display_time" size=5 value="0:00"><br>
ETA 2 <input type=text name="display_time2" size=5 value="0:00">
</form>
RobB - 30 Nov 2004 06:58 GMT
> I'm making some progress.
>
[quoted text clipped - 57 lines]
>
> </form>
You've posted so much conflicting code, hard to even guess at what
you're doing. In these instances, it's usually best to post some
(valid) HTML, with a simple description of what needs to happen.
Store the data in an object/array (same thing, really) and use the
selected option value as a 'key' to extract & process it.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>untitled</title>
<script type="text/javascript">
//<![CDATA[
var data = new Object;
data['High_Way1'] = '2:20|4:30';
data['High_Way2'] = '3:40|5:15';
data['default'] = '0:00|0:00';
function trip_time(selObj)
{
var sval = selObj.options[selObj.selectedIndex].value, //get selected
value
els = selObj.form.elements, //form elements
separator = '|', //separates data (above)
d = data[sval || 'default'].split(separator); //so, split it into an
array
els.display_time.value = d[0]; //output 1st element
els.display_time2.value = d[1]; //output 2nd element
}
//]]>
</script>
</head>
<body>
<form name="Traffic_Results">
<select name="CIP_Diff" onchange="return trip_time(this)">
<option value="" selected="selected">Choose</option>
<option value=""></option>
<option value="High_Way1">High Way 1</option>
<option value="High_Way2">High Way 2</option>
</select>
<font size="-1">Starting Location</font>
<br />
Time at Location <input type="text" name="reported_time" value=""
size="5" />
<br />
ETA 1 <input type="text" name="display_time" value="0:00" size="5"><br
/>
ETA 2 <input type="text" name="display_time2" value="0:00" size="5" />
</form>
</body>
</html>