?
Solved

populating a javascript array from an access database using asp - vbscript

Posted on 2004-04-23
3
Medium Priority
?
1,321 Views
Last Modified: 2012-06-21
Hi,

I have a page which connects to an access database using asp / vbscript.


In the head of the page is a javascript for dealing with multiple dynamic drop down menus:

<script type="text/javascript">
<!--

var arrStates, arrFix, arrCompactFit, arrSmartCentra, arrSSRange, arrSRange, arrNSRange1, arrNSRange2, arrNSRange3, arrSRRange, arrPSRange, arrS2KRange, arrT2000r1, arrT2000r2, arrT2000r3, arrT2000r4, arrT2003r1, arrT2003r2
arrFix = [ ]
arrMG = ["MG05LED" , "MG07LCD", "MG10LCD"]
arrSSRange = ["SS065", "SS100", "SS150", "SS200", "SS3000"]
arrSRange = ["S1010", "S101007", "S101020", "S101040", "S101050", "S101065", "S101090"]
arrNSRange1 = ["NS1016 1.6kva 0 min", "NS101605 1.6kva 5 min", "NS101615 1.6kva 15 min", "NS101625 1.6kva 25 min", "NS101640 1.6kva 40 min", "NS101655 1.6kva 55 min", "NS101670 1.6kva 70 min", "NS1024 2.4 kva 0 min", "NS102405 2.4 kva 5 min", "NS102415 2.4kva 15 min", "NS102425 2.4kva 25 min", "NS102440 2.4kva 40 min", "NS102455 2.4kva 55 min", "NS102470 2.4kva 70 min", "NS1032 3.2kva 0 min", "NS103205 3.2kva 5 min", "NS103215 3.2kva 15 min", "NS103230 3.2kva 30 min", "NS103240 3.2kva 40 min", "NS103250", "NS103270"]
arrNSRange2 = ["NS1060 6.0kva 0 min", "NS106008 6.0kva 8 min", "NS106025 6.0kva 25 min", "NS106040 6.0kva 40 min", "NS106055 6.0kva 55 min", "NS106075 6.0kva 75 min", "NS1060100 6.0kva 100 min", "NS1060160 6.0kva 160 min", "NS1060240 6.0kva 240 min", "NS1060350 6.0kva 350 min"]
arrNSRange3 = ["NS1080 8.0kva 0 min", "NS108006 8.0kva 6 min", "NS108015 8.0kva 15 min", "NS108030 8.0kva 30 min", "NS108045 8.0kva 45 min", "NS108060 8.0kva 60 min", "NS108120 8.0kva 120 min", "NS108200 8.0kva 200 min", "NS10100 10kva 0 min", "NS10100BB 10kva with battery cab", "NS101008 10kva 8 min", "NS1010020 10kva 20 min", "NS1010040 10kva 40 min", "NS1010050 10kva 50 min", "NS1010080 10kva 80 min", "NS1010150 10kva 150 min", "NS1010240 10kva 240 min"]
arrSRRange = ["SR2010 1.0kva 0 min", "SR201006 1.0kva 6 min", "SR201020 1.0kva 20 min", "SR201035 1.0kva 35 min", "SR201050 1.0kva 50 min", "SR2020 2.0kva", "SR202007 2.0kva 7 min", "SR202020 2.0kva 20 min", "SR202035 2.0kva 35 min", "SR202050 2.0kva 50 min", "SR2030 3.0kva 0 min", "SR203005 3.0kva 5 min", "SR203015 3.0kva 15 min", "SR203030 3.0kva 30 min", "SR203040 3.0kva 40 min", "SR1050 5.0kva 0 min", "SR105010 5.0kva 10 min", "SR105020 5.0kva 20 min", "SR105035 5.0kva 35 min", "SR105060 5.0kva 60 min", "SR1060 6.0kva 0 min", "SR106010 6.0kva 10 min", "SR106020 6.0kva 20 min"]
arrPSRange = ["PS1-2", "PS1-3", "PS1-5", "PS1-8", "PS1-13", "PS2-2", "PS2-3", "PS2-5", "PS2-8", "PS2-13", "PS3-2", "PS3-3", "PS3-5", "PS3-7"]
arrS2KRange = ["S2K080", "S2K08006", "S2K08015", "S2K08030", "S2K08045", "S2K08060", "S2K080120", "S2K080200", "S2K10", "S2K10BB", "S2K10007", "S2K10020", "S2K10030", "S2K10050", "S2K10080", "S2K10150", "S2K10240", "S2K15", "S2K15A", "S2K15B", "S2K15006", "S2K15020", "S2K15035", "S2K15050", "S2K15070", "S2K15120", "S2K15210"]
arrT2000r1 = ["T2K010", "T2K010007", "T2K010020", "T2K010035", "T2K010055", "T2K010075", "T2K010150", "T2K020", "T2K020B", "T2K020008", "T2K020015", "T2K020025", "T2K020035", "T2K020065", "T2K020110", "T2K030", "T2K030B", "T2K030003","T2K030020", "T2K040", "T2K040005", "T2K040008", "T2K040013", "T2K040030", "T2K040050", "T2K040070", "T2K040110"]
arrT2000r2 = ["T2K050", "T2K050006", "T2K050010", "T2K050020", "T2K050035", "T2K050050", "T2K050080", "T2K060", "T2K060003", "T2K060007","T2K060015", "T2K060030", "T2K060035", "T2K060065", "T2K060110", "T2K080", "T2K080003", "T2K080010", "T2K080018", "T2K080030", "T2K080050", "T2K080075", "T2K080110"]
arrT2000r3 = ["T2K100", "T2K100007", "T2K100013", "T2K100018", "T2K100040", "T2K100055", "T2K100085", "T2K100110", "T2K120", "T2K120005", "T2K120010", "T2K120014", "T2K120030", "T2K120045", "T2K120065", "T2K120085", "T2K150", "T2K150007", "T2K150011", "T2K150020", "T2K150035", "T2K150050", "T2K150065"]
arrT2000r4 = ["T2K200", "T2K200003", "T2K200012", "T2K200020", "T2K200035", "T2K200045", "T2K250", "T2K250003", "T2K250009", "T2K250016", "T2K250025", "T2K300", "T2K300006", "T2K300012", "T2K300020", "T2K350", "T2K350005", "T2K350010", "T2K350015", "T2K350020", "T2K400", "T2K400003", "T2K400008", "T2K400012", "T2K400018", "T2K500", "T2K500005", "T2K500009", "T2K500012", "T2600", "T2K600006", "T2K600010"]
arrT2003r1 = ["T3K010", "T3K010B", "T3K010008", "T3K010025", "T3K010040", "T3K010055", "T3K010090", "T3K015", "T3K015B", "T3K015003", "T3K015013", "T3K015025", "T3K015035", "T3K015050", "T3K020", "T3K020B", "T3K020008", "T3K020015", "T3K020025", "T3K020035", "T3K020065", "T3K030", "T3K030B", "T3K030003", "T3K030008", "T3K030012", "T3K030020", "T3K030040", "T3K030065"]
arrT2003r2 = ["T3K040", "T3K040B", "T3K040005", "T3K040008", "T3K040013", "T3K040030", "T3K040050", "T3K050", "T3K050B", "T3K050006", "T3K050010", "T3K050020", "T3K050035", "T3K050050"]

arrStates =[arrFix, arrMG, arrSSRange, arrSRange, arrNSRange1, arrNSRange2, arrNSRange3, arrSRRange, arrPSRange, arrS2KRange, arrT2000r1, arrT2000r2, arrT2000r3, arrT2000r4, arrT2003r1, arrT2003r2]

// Function to handle dynamically altering the contents of the City List box
function handleChange(newDisplay)
{   var StateSelect, CitySelect, NumEntries, i
    StateSelect = document.frm.productNumber
    CitySelect = document.frm.modelNumber

  // Delete all entries in the cities list box
  for (i = CitySelect.length; i > 0; i--)
  {
    CitySelect.options[i-1] = null
  }

  // Add comment option to City List box
  CitySelect.options[0] = new Option("-- Select Model --",0)

  // If state is selected add its cities to the City List box
  if (newDisplay >= 0)
  {
    NumEntries = arrStates[newDisplay].length
    for (i = 1; i <= NumEntries; i++)
    {
     CitySelect.options[i] = new Option((arrStates[newDisplay])[i-1],(arrStates[newDisplay])[i-1])
    }
  }
  CitySelect.selectedIndex = 0

}
//-->
</script>


I am trying to find a way to populate the arrays (at the top of the script) dynamically with values from my access database.

Each array would come from a different recordset, and i have no problem sorting these out. I just need to know how I can put a field from the recordset in the array, followed by a comma, followed by the next record, followed by a comma, follwed by etc etc untill there's no records left.

Any ideas would be greatly appreiciated.

Thanks in advance

Paul
0
Comment
Question by:PaulCampbell
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
3 Comments
 
LVL 5

Accepted Solution

by:
bitter_chicken earned 225 total points
ID: 10900412
Hey Paul - try this:

(example given for populating arrSSRange = ["SS065", "SS100", "SS150", "SS200", "SS3000"])

--------------------------------
'make sure to create a recordset or whatever here
<html>
<head>
</head>
<body>
arrSSRange = ["<% Do Until Recordset.EOF
Response.Write Recordset.Fields(1)
%>","<% Recordset.Movenext
Loop %>"]

</body>
</html>
0
 
LVL 2

Expert Comment

by:Splat
ID: 10900670
Hi Paul,

You could try something like this :

<script type="text/javascript">
<!--
var arrMG

<%
' Server-Side ASP/VBScript code
Dim objConn, strSQL, objRS
' create a connection to the Access database
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("filename.mdb")

strSQL = "SELECT field FROM table;"
Set objRS = CreateObject("ADODB.Recordset")
objRS.Open strSQL, objConn
' if there is at least one record, write the first element in the JavaScript array
If NOT objRS.EOF Then
  Response.Write "arrMG = [""" & objRS("field") & """"
  objRS.MoveNext
  ' if there are more records, loop through them and add them to the JavaScript array
  Do While Not objRS.EOF
    Response.Write " , """ & objRS("field") & """"
    objRS.MoveNext
  Loop
  ' close the JavaScript array and insert a carriage return
  Response.Write "]" & vbCrLF
End If
' clean up the objects
objRS.Close
Set objRS = Nothing

' clean up the objects
objConn.Close
Set objConn = Nothing
%>

//-->
</script>

This should output the following to the browser :

<script type="text/javascript">
<!--
var arrMG
arrMG = ["MG05LED" , "MG07LCD", "MG10LCD"]
//-->
</script>

For each JavaScript array that you are pulling out of the database, you will need to create another strSQL and objRS object, and loop through them like the one above.

Hope that helps,
 - Splat

0
 
LVL 6

Expert Comment

by:Lord_McFly
ID: 10904895
Heres my contribution, this would need to be done for each RecordSet that you have...

If not rsList.EOF then
      Response.Write "<script language='JavaScript'>" & vbCRLF
      Response.Write "<!--" & vbCRLF
      Response.Write "arrMG = [" & Chr(34) & rsList("FieldName") & Chr(34)
      
      rsList.MoveNext
      
      If not rsList.EOF then
            Do while not rsList.EOF
                  Response.Write "," & Chr(34) & rsList("FieldName") & Chr(34)
                  
                  rsList.MoveNext
            Loop
      End If
      
      Response.Write "]" & vbCRLF
      Response.Write "//-->" & vbCRLF
      Response.Write "</script>" & vbCRLF
End If
0

Featured Post

Don't Cry: How Liquid Web is Ensuring Security

WannaCry is just the start. Read how Liquid Web is protecting itself and its customers against new threats.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Does your audience prefer people in photos or no people? How can you best highlight what you’re selling? What are your competitors doing, and what can you do that is different and unique from them?  Continue reading to learn how to make your images …
When it comes to security, close monitoring is a must. According to WhiteHat Security annual report, a substantial number of all web applications are vulnerable always. Monitis offers a new product - fully-featured Website security monitoring and pr…
Viewers will get an overview of the benefits and risks of using Bitcoin to accept payments. What Bitcoin is: Legality: Risks: Benefits: Which businesses are best suited?: Other things you should know: How to get started:
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.
Suggested Courses

764 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question