---
title: "Array"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/111855-array"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "iing9808"
published: "2004-09-18T09:50:57.000Z"
updated: "2004-09-21T11:03:11.000Z"
replies: 15
views: 494
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/111855-array"
---

# Array

## #1 — iing9808, 2004-09-18T09:50Z

Jag hämtar 18 st värden från en databas.  Dessa värden skulle jag vilja spara i en JavaScript array för att kunna använda i det javascript som jag också har på sidan.
Så här ser min kod ut nu som är alldeles galen:

> \<Script Language=JavaScript\>
> var par = new array(18)
> ( mer JavaScript ...)
> \</Script\>
> \<%
> i= 1
> For hal = i to 18
>       hal_par = RecSet("hal_par")%\>
>       \<Script Language=JavaScript\>
>       par\[i-1\]=\<%=hal_par%\>
>       \</Script\>
>       \<%
> Next
> (mer asp kod ...)

 
Hur ska jag få till så att dessa värden lägger sig i min par array?

Permalänk: https://www.webforum.nu/p/111855

## #2 — iing9808, 2004-09-18T10:06Z

Fast det kanske är lättare att lägga allting i en asp array och sen hämta ut den i det javascript där jag behöver värdena.

Permalänk: https://www.webforum.nu/p/1441537

## #3 — Eclipse, 2004-09-18T10:34Z

```
Ett exempel på hur man kan göra.
Som du vet finns det många sätt att göra samma sak på! Be creative! :-)

SQL = "SELECT intID, strName FROM [users]"
Set mySQL = Conn.Execute(SQL)

' ## CEREATE ARRAY IF NOT END OF FILE
IF NOT mySQL.EOF THEN myLocalArray = mySQL.GetRows()

***
' ## PRINT TO SCREEN

IF IsArray(myLocalArray) THEN
  myRow = myLocalArray

  FOR j = 0 TO UBound(myRow,2)
    ' ## PRINT!!

    response.write "Namn: " & myRow(1,j)

    ' ## LINE BREAK IF NOT LAST POST
    IF j < UBound(myRow, 2) THEN response.write "<BR>"
  NEXT

ELSE
  ' ## NO DATA
  response.write "There are no users."
END IF
```

Permalänk: https://www.webforum.nu/p/1441545

## #4 — iing9808, 2004-09-18T21:08Z

Jag ändrade om lite så nu ser det ut så här: 

```
<%
Dim parArray(18)
i= 1
For hal = i to 18
hal_par = RecSet("hal_par")
parArray(i-1)=hal_par
Next
%>
```

Hur hämtar jag nu ut detta om jag vill använda det i JavaScript? 

```
alert(<%=parArray(0)%>
```

Fungerar inte så värst bra. Går det att hämta värdena till JavaSriptet?

Permalänk: https://www.webforum.nu/p/1441787

## #5 — @nders, 2004-09-18T21:13Z

Det är klart att det går att "hämta" värdena till javascriptet. 

```
alert(<%=parArray(0)%>
```

skall vara

```
alert('<%=parArray(0)%>');
```

mvh

Permalänk: https://www.webforum.nu/p/1441789

## #6 — iing9808, 2004-09-19T09:28Z

Jag får bara: "Error Type:
Microsoft VBScript runtime (0x800A000D)
Type mismatch." När jag använder mig av 

```
alert('<%=parArray(0)%>');
```

Jag kan skriva ut det i asp koden strax efter att jag skapat arrayen så jag vet att det finns nåt i den.

Permalänk: https://www.webforum.nu/p/1441894

## #7 — @nders, 2004-09-19T09:32Z

Du får visa mer kod. 

Du har väl tänkt på att asp är asp och javascript är javascript? dvs, du har inte glömt script-taggar?

Permalänk: https://www.webforum.nu/p/1441897

## #8 — iing9808, 2004-09-19T11:16Z

Då kommer det ett litet urklipp här:

```
 
<%
 ..(asp kod) ...
%>
<Script Language="JavaScript">
function calcPoang()
{
alert('<%=parArray(0)%>'); //bara ett test för att kolla
}
..(mer JavaScript)..
</Script>
<%
..(asp kod) ...
Dim array
i=1
slut=18
For hal = i to slut
hal_par = RecSet("hal_par")
parArray(i-1)=hal_par
Response.Write(parArray(i-1)) 'bara test för att kolla
i=i+1
Next
Response.Write "<INPUT type='textarea'  size=1 name=slag" & hal & " onblur='calcPoang()'>"
... ..(asp kod) ...
%>
```

Jag har alltså 18 textareor som heter slag1-18 (beroende på vilket varv den är i loopen). Och vid onBlur på dessa rutor anropas funktionen calcPoang som ligger ovanför i koden. Bara som ett test för att se om jag har något vettigt värde där så vill jag köra en alert på den.

Permalänk: https://www.webforum.nu/p/1441933

## #9 — @nders, 2004-09-19T11:30Z

Har du skapat arrayen ovanför javascriptet i koden då?

Permalänk: https://www.webforum.nu/p/1441943

## #10 — iing9808, 2004-09-19T11:38Z

Det har du ju alldeles rätt i. 
Ändrade nu så jag kör Dim parArray(18) allra längst upp på sidan. Nu får jag ingen felutskrift, men den alert ruta som kommer fram är tom.

Permalänk: https://www.webforum.nu/p/1441944

## #11 — @nders, 2004-09-19T12:32Z

Jo, alltså, arrayen måste ju vara skapad och fylld för att du ska kunna ta ut några värden.

Kom ihåg att all asp-kod körs top-to-bottom, så det är inte så konstigt att det blir som det blir.

mvh

Permalänk: https://www.webforum.nu/p/1441970

## #12 — iing9808, 2004-09-19T17:15Z

Nu har jag nog helt dribblat bort mig själv. Första jag har i filen är asp kod, där jag skapar koppling mot en accessdatabas och sen sparar några av värdena i databasen i aspvariabler. Jag sparar också de data som har postats från föregående sida. Sen har jag JavaScript. Där ligger de funktioner som ska köras beroende på vad användaren klickar på. Bla den som ska skriva ut det som finns i parArray. Sen kommer asp kod igen som via Response.Write skriver ut en tabell innehållande lite val som användaren kan göra. Min parArray skapas (dock finns Dim parArray(18) längst upp på sidan i det första partiet asp kod) här och som ett test så skriver jag ut den inte i nån \<TD\> tagg så den hamnar utanför tabellen. När en viss textarea tappat sin focus (onBlur) så anropas JavaScript funktionen som ligger ovan i filen och då försöker jag hämta det som står i den (alltså efter att jag redan har skrivit ut det en gång). 
Sker saker och ting i fel ordning ändå måntro?

Permalänk: https://www.webforum.nu/p/1442045

## #13 — @nders, 2004-09-19T18:19Z

Om saker och ting sker i fel ordning, det kan jag inte svara på eftersom jag inte ser exakt sammanhang och kod. Det man ska komma ihåg är att det första som sker är att *all* asp-kod exekveras, och efter det skickas resultatet till webbläsaren. ASP-koden exekveras uppifrån och ner, så du kan inte komma åt värden / variabler som skapas under aktuell kodrad. Så: ska du skriva ut ett javascript som alert:ar ett värde från en array i ASP, då måste arrayen vara skapad och fylld innan dess du skriver ut javascriptet och alert-raden. Exempel: 

```
<% 
 ' denna kod fungerar, eftersom variabeltilldelning görs innan användandet
dim strFoo
strFoo = "bar"
response.write "<script>alert('" & strFoo & "');</script>"
%>
```

```
<%
 ' denna kod funkar inte, eftersom när alert-raden skrivs ut har inte variabeln något värde
dim strFoo
response.write "<script>alert('" & strFoo & "');</script>"
strFoo = "foo!=bar"
%>
```

mvh

Permalänk: https://www.webforum.nu/p/1442072

## #14 — iing9808, 2004-09-19T19:37Z

Ja, att all aspkod exekveras borde ju betyda att det finns nåt i min array när jag försöker göra nåt med den i min JavaScript funktion. Felet måste ligga nån annanstans. Jag får väl dissikera rubbet helt enkelt. Tack så mycket för hjälpen!

Permalänk: https://www.webforum.nu/p/1442118

## #15 — iing9808, 2004-09-21T10:54Z

Jag gick tillbaka till ursprunget att skapa en JavaScript array i asp koden istället för att hämta en asp array i JavaScript. Det ska tydligen inte gå enligt mycket intelligenta och kunniga källor. Men med följande kod så rockar det:

```
<% (asp kod)
%>
<Script Language=JavaScript>
parArray=new Array(18)
function Test()
{
for(var i=1; i<19; i++)
	{
		alert(parArray[i-1]);
	}
}
</Script>
<% (asp kod)
For hal = i to 18
                 hal_par = RecSet("hal_par")
                 %>
                 <Script Language=JavaScript>
                 parArray[<%=i-1%>]=<%=hal_par%>
                 </Script>
                 <% 
                 RecSet.moveNext
Next
 Response.Write "<INPUT type='textarea'  size=1 name=slag onblur='Test()'>"
```

Permalänk: https://www.webforum.nu/p/1442883

## #16 — @nders, 2004-09-21T11:03Z

Det blir väldigt många script-taggar där. :)

Du kan minska ner det lite till:

```
response.write "<Script Language=""JavaScript"">"
For hal = i to 18
                 hal_par = RecSet("hal_par")
                 Response.write "parArray[" & i-1 & "]=" & hal_par & ";" & vbCrlf
                 RecSet.moveNext
Next
Response.write "</Script>"
```

mvh

Permalänk: https://www.webforum.nu/p/1442885

---

Tråden på webben: https://www.webforum.nu/amne/asp/111855-array
