Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Chriss Miller on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Javascript Array

Status
Not open for further replies.

Moonpie10

Programmer
Joined
Feb 22, 2005
Messages
14
Location
US
Hi,
I have a java vector that I have formatted and now i need to get to work with a javascript function. Essentially if someone selects from box1 the javascript function will populate select box2. My problem is that when populating select box2 with the data it is appearing in the wrong format. Can someone look at my code and output and see where I am going wrong? Thanks!
Code:
<%
Vector stateList = new Vector();
admin.getState(stateList);
String stateString = " ";

for (int i = 0; i < stateList.size(); i++) {
String sString = stateList.get(i).toString();
stateString = stateString + sString.trim() ;
}

Vector terrList = new Vector();
admin.getCanTerr(terrList);
String terrString = " ";

for (int i = 0; i < terrList.size(); i++) {
String tString = terrList.get(i).toString();
terrString = terrString + tString.trim() ;
}

%>

<script language="javascript">
function setOptions(o)
{

var select2 = document.geo.select2;
select2.options.length = 0;

if (o == "United States")
{
select2.options[select2.options.length] = new Option('<%=stateString%>');
}
if (o == "Canada")
{
select2.options[select2.options.length] = new Option('<%=terrString%>');
}
if (o == "3")
{
select2.options[select2.options.length] = new Option('Chicken');
select2.options[select2.options.length] = new Option('Fish');
}
}
</script>

Output:
<script language="javascript">
function setOptions(o)
{

var select2 = document.geo.select2;
select2.options.length = 0;

if (o == "United States")
{
select2.options[select2.options.length] = new Option(' <option value="AL">Alabama<option value="AK">Alaska<option value="AZ">Arizona<option value="AR">Arkansas<option value="CA">California<option value="CO">Colorado<option value="CT">Connecticut<option value="DE">Delaware<option value="FL">Florida<option value="GA">Georgia<option value="HI">Hawaii<option value="ID">Idaho<option value="IL">Illinois<option value="IN">Indiana<option value="IA">Iowa<option value="KS">Kansas<option value="KY">Kentucky<option value="LA">Louisiana<option value="ME">Maine<option value="MD">Maryland<option value="MA">Massachusetts<option value="MI">Michigan<option value="MN">Minnesota<option value="MS">Mississippi<option value="MO">Missouri<option value="MT">Montana<option value="NA">National<option value="NE">Nebraska<option value="NV">Nevada<option value="NH">New Hampshire<option value="NJ">New Jersey<option value="NM">New Mexico<option value="NY">New York<option value="NC">North Carolina<option value="ND">North Dakota<option value="OH">Ohio<option value="OK">Oklahoma<option value="OR">Oregon<option value="PA">Pennsylvania<option value="RI">Rhode Island<option value="SC">South Carolina<option value="SD">South Dakota<option value="TN">Tennessee<option value="TX">Texas<option value="UT">Utah<option value="VT">Vermont<option value="VA">Virginia<option value="WA">Washington<option value="WV">West Virginia<option value="WI">Wisconsin<option value="WY">Wyoming');
}
if (o == "Canada")
{
select2.options[select2.options.length] = new Option(' <option value="AL">Alberta<option value="BC">British Columbia<option value="MN">Manitoba<option value="NW">NW Territory<option value="NA">National<option value="NB">New Brunswick<option value="NF">Newfoundland<option value="NS">Nova Scotia<option value="NU">Nunavut<option value="ON">Ontario<option value="PE">Prince Edward Island<option value="QE">Quebec<option value="SP">Saint Pierre & Miquelon<option value="SA">Saskatchewan<option value="YU">Yukon');
}
if (o == "3")
{
select2.options[select2.options.length] = new Option('Chicken');
select2.options[select2.options.length] = new Option('Fish');
}
}
</script>
 
Each one of your <option>s should be a new Option(), where you're stuffing them all into one, except for your Chicken/Fish example.

Lee
 
I thought I was stepping through it when creating the vector? Do I need to do this again for each option?
 
okay, I tried stepping through it but am now getting nothing, sorry but I am new to javascript. Here is what i have:

<script language="javascript">
function setOptions(o,stateString)
{
var state = new Array(<% Vector stateList = new Vector();
admin.getState(stateList);
String stateString = " ";

for (int i = 0; i < stateList.size(); i++) {
String sString = stateList.get(i).toString();
stateString = stateString + sString.trim() ;
} %> );

var select2 = document.geo.select2;
select2.options.length = 0;

if (o == "United States")
{
for(i=0;i<state.length;i+=2)
{
select2.options[i/2] = new Option(state,state[i+1]);
}

//select2.options[select2.options.length] = new Option('<%=stateString%>');
}
if (o == "Canada")
{
select2.options[select2.options.length] = new Option('<%=terrString%>');
}
if (o == "3")
{
select2.options[select2.options.length] = new Option('Chicken');
select2.options[select2.options.length] = new Option('Fish');
}
}
</script>
 
There is no such thing as Vector or String data types in Javascript. Your output shows, for

if (o == "United States")

that you are creating one long string and calling it an Option, but it includes all the <option> tags as well as all the values. Each <option> must be a separate Option(), not a string that includes <option>. Look up the syntax of Option() to see how to use this object.

Lee
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top