How to insert values into a listbox based on an array?

Hi Experts,

How to insert values into a listbox based on an array?

I have the following ASP code which queries data from a table and reads it into an array. Now I want to use the array to populate a list box in a form. How can does be done?

Thanks


<%
'First declare variables used
 
 
Dim arrLocationID
Dim arrLocationName
Dim arrItemID
Dim arrItemName
 
 
 
arrLocationID = "'"
arrLocationName = "'"
arrItemID = "'"
arrItemName = "'"
 
 
 
'=============================START OF CODE FOR LOCATION DROP DOWN===================
 
 
'Query Location
 
Set rs=Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT LOCATIONS.LocationID, LOCATIONS.LocationName FROM LOCATIONS WHERE (((LOCATIONS.Active)=-1)) ORDER BY LOCATIONS.LocationName;"
rs.Open strSQL,conn
 
 
IF NOT rs.EOF THEN
 
  WHILE NOT rs.EOF
 
    arrLocationName = arrLocationName & rs("LocationName") & "','"
 
    rs.MoveNext
 
  WEND
 
  arrLocationName  = Left(arrLocationName , Len(arrLocationName ) - 2)  ' Get rid of the ,' at the end
 
  rs.Close
  Set rs = nothing
 
END IF
 
 
 
 
 
'=============================END OF CODE FOR LOCATION DROP DOWN===================
%>

Open in new window

LVL 1
indyngAsked:
Who is Participating?
 
bluV11tConnect With a Mentor Commented:
Don't know why you'd want to do it with JavaScript but here it is....
<%
'Query Location
 
Set rs=Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT LOCATIONS.LocationID, LOCATIONS.LocationName FROM LOCATIONS WHERE (((LOCATIONS.Active)=-1)) ORDER BY LOCATIONS.LocationName;"
rs.Open strSQL,conn
 
 
IF NOT rs.EOF THEN
 
  WHILE NOT rs.EOF
 
    arrLocationName = arrLocationName & rs("LocationName") & ","
 
    rs.MoveNext
 
  WEND
 
  arrLocationName  = Left(arrLocationName , Len(arrLocationName ) - 2)  ' Get rid of the , at the end
 
  rs.Close
  Set rs = nothing
 
END IF
%>
 
<html>
<script language="JavaScript">
 
function populate(strSelectbox, strArray)
{
var myArray = strArray.split(",");
var mySelect = document.getElementById(strSelectbox);
var myIndex = 0;
 
	for(var item in myArray)
	{
	    var newOption = document.createElement('option');
	    alert(item);
		var myIndex = mySelect.options.length;
		mySelect.options[myIndex] = new Option(myArray[myIndex], myArray[myIndex], false, false); 
		myIndex++;
	}
}
</script>
<body onLoad="JavaScript: populate('location', '<%=arrLocationName%>')">
<select id="location" name="location">
 
</select>
</body>
</html>

Open in new window

0
 
hieloCommented:
try:
<%
'First declare variables used
 
 
Dim arrLocationID
Dim arrLocationName
Dim arrItemID
Dim arrItemName
 
 
 
arrLocationID = "'"
arrLocationName = "'"
arrItemID = "'"
arrItemName = "'"
 
 
 
'=============================START OF CODE FOR LOCATION DROP DOWN===================
 
 
'Query Location
 
Set rs=Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT LOCATIONS.LocationID, LOCATIONS.LocationName FROM LOCATIONS WHERE (((LOCATIONS.Active)=-1)) ORDER BY LOCATIONS.LocationName;"
rs.Open strSQL,conn
 
 
IF NOT rs.EOF THEN
 Response.Write("<select name='location'>")
  WHILE NOT rs.EOF
   Response.Write("<option value='" & rs("LocationID").value & "'>" & rs("LocationName").value & "</option>")
'    arrLocationName = arrLocationName & rs("LocationName") & "','"
 
    rs.MoveNext
 
  WEND
 Response.Write("</select>")
'  arrLocationName  = Left(arrLocationName , Len(arrLocationName ) - 2)  ' Get rid of the ,' at the end
 
  rs.Close
  Set rs = nothing
 
END IF
 
 
 
 
 
'=============================END OF CODE FOR LOCATION DROP DOWN===================
%>

Open in new window

0
 
indyngAuthor Commented:
The data is first queried using ASP and stored in an array.

The array then populates the list box in the form using Java script. This is what I am looking for.

What is the syntax to insert values into a listbox using an array using Java script?

Thanks
0
 
hieloCommented:
>>What is the syntax to insert values into a listbox using an array using Java script?
The array to speak of resides on the server, NOT on the browser. The javascript code would execute on the browser, not on the server. So, javascript will NEVER see that array. You need to use Response.Write("...") to send those values to the browser. Hence, instead of sending a comma-separated list of values, I suggested the ASP code that builds the actual HTML SELECT list.
0
 
bluV11tCommented:
Sorry, remove line 39             alert(item);
Debugging script :-)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.