Avatar billede Slettet bruger
18. august 2005 - 18:49 Der er 68 kommentarer og
1 løsning

Hjælp til at lave en Where data=" hvad der vælges i selectboks"

Jeg har i mit ASP dokument denne select boks:


Response.Write("<select name=""valg"">")
Response.Write("<option value="""""">VÆLG</option>")
Response.Write("<option value=""1"">1</option>")
Response.Write("<option value=""2"">2</option>")
Response.Write("<option value=""3"">3</option>")
Response.Write("<option value=""4"">4</option>")
Response.Write("<option value=""5"">5</option>")
Response.Write("<option value=""6"">6</option>")
Response.Write("<option value=""7"">7</option>")
Response.Write("</select>")



Og længer oppe i dokumentet har jeg denne linje:
Set rs = Conn.Execute("SELECT data FROM data Where data="""" ORDER BY Data")

Som i kan se mangler jeg noget i Where data="""" som jeg skrev ovenover.
Jeg vil gerne at hvis man vælger 1 oppe i selectboxen så kommer der til at står where data=""1"".

Jeg har postet spørgsmålet i ASP tråden men kunne hurtigt se at det hørte til her.

Altså når man vælger I select boksen skal siden opdateres og sende skrive where data=""[Valg]""
[Valg] = det valgte tal i selectboksen.
Avatar billede olebole Juniormester
18. august 2005 - 19:24 #1
<ole>

<select name="valg" onchange="location.href='page.asp?where='+this.value">

/mvh
</bole>
Avatar billede Slettet bruger
18. august 2005 - 19:54 #2
Hmmm det virker ikke.
Hvis jeg vælger 1 så kan stadig se alle og ikke kun dem where data=""1""
Avatar billede Slettet bruger
18. august 2005 - 20:00 #3
Skal det ikke være sådan:

<select name="valg" onchange="location.href='page.asp?where Data='+this.value">

???
Avatar billede roenving Novice
18. august 2005 - 22:23 #4
Resten er asp !-)

-- du skal i dit script i page.asp aflæse Request("where") og kun udskrive det, der svarer til det !o]
Avatar billede nielle Nybegynder
18. august 2005 - 22:26 #5
Dette spørgsmål er faktisk en af den sjældne slags som er både ASP og JavaScript. ASP-scriptet skal nemlig ikke bare skrive JavaScript-koden ud, men den skal faktisk beregne hvordan JavaScript-koden skal se ud.

For at løse problemet er vi dog nødt til at starte med JavaScript-koden. Det at lade indholdet af en select afhænge dynamisk af valget i en anden kan f.eks. laves sådan her:

<script type='text/javascript'>
function sync(val)
{
    switch (val)
    {
        case '1' :
            setWhere1();
            break;
        case '2' :
            setWhere2();
            break;
        case '3' :
            setWhere3();
            break;
        case '4' :
            setWhere4();
            break;
        case '5' :
            setWhere5();
            break;
        case '6' :
            setWhere6();
            break;
        case '7' :
            setWhere7();
            break;
        default :
            break;
    }
}

function setWhere1()
{
    elm = document.getElementById('valg2');
    elm.options.length = 0;

    elm.options[0] = new Option("A", "1");
    elm.options[1] = new Option("B", "2");

    elm.options[0].selected = true;

}

function setWhere2()
{
    elm = document.getElementById('valg2');
    elm.options.length = 0;

    elm.options[0] = new Option("C", "3");
    elm.options[1] = new Option("D", "4");
    elm.options[2] = new Option("E", "5");

    elm.options[0].selected = true;
}

function setWhere3()
{
    // ..
}

function setWhere4()
{
    // ..
}

function setWhere5()
{
    // ..
}

function setWhere6()
{
    // ..
}

function setWhere7()
{
    // ..
}
</script>

<select name='valg' onChange='sync(this.value);'>
<option value=''>VÆLG</option>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
</select>

<br>

<select id='valg2' name='valg2'>
</select>
Avatar billede nielle Nybegynder
18. august 2005 - 22:30 #6
ASP-koden skal altså først udskrive alle case'ene i switch sætningen.

Derefter skal den lave et antal setWhereX funktioner – en pr. case. Indholdet af disse skal variere med det der skal fyldes i select #2. Dette afhænger af hvad der står i databasen.
Avatar billede Slettet bruger
20. august 2005 - 11:04 #7
Ok i må undskylde det tog så lang tid men skulle lige skrive det endelige dokument hvor det skulle bruges i.

Det er den øverste selectboks der skal vælg where
---------------------------------------------------

<%
%><!--#include file="db_open.asp"--><%

Set rs = Conn.Execute("SELECT Teamname FROM Liga_Teams Where Liga=""1"" and season=""26"" ORDER BY Teamname")



Dim TeamStr
TeamStr = ""

Do While Not rs.EOF
    If (TeamStr <> "") Then TeamStr = TeamStr & "|"
    TeamStr = TeamStr & rs("teamname")
    rs.MoveNext
Loop

Dim TeamArr
TeamArr = Split(TeamStr, "|")



Response.Write("<center><form action=""liga_match_create.asp"" method=""post"">")

Response.Write("<table width=""75%"">")
    Response.Write("<tr>")
        Response.Write("<td Width=""100%"" align=""Center"">")
            Response.Write("<select name=""Liga"" onchange=""location.href?site='liga_match_add.asp?where='+this.value"">")
                Response.Write("<option value="""""">VÆLG</option>")
                Response.Write("<option value=""1"">1</option>")
                Response.Write("<option value=""2"">1</option>")
                Response.Write("<option value=""3"">2</option>")
                Response.Write("<option value=""4"">3</option>")
                Response.Write("<option value=""5"">4</option>")
                Response.Write("<option value=""6"">5</option>")
                Response.Write("<option value=""7"">6</option>")
            Response.Write("</select>")
        Response.Write("</td>")
    Response.Write("</tr>")
Response.Write("</table>")

Response.Write("<table width=""75%"">")
    Response.Write("<tr>")
        Response.Write("<td Width=""100%"" align=""Center"">")
            Response.Write("Dato: <input type=""text"" name=""Dato"" size=""10"" maxlength=""100""> åååå-mm-dd")
        Response.Write("</td>")
    Response.Write("</tr>")
Response.Write("</table>")

   
Response.Write("<table width=""75%"">")
    Response.Write("<tr>")
        Response.Write("<td width=""43%""><center>")
            Response.Write("Hjemmehold")
        Response.Write("</center></td>")
        Response.Write("<td width=""5%"">")
            Response.Write("")
        Response.Write("</td>")
        Response.Write("<td width=""4%"">")
            Response.Write("vs.")
        Response.Write("</td>")
        Response.Write("<td width=""5%"">")
            Response.Write("")
        Response.Write("</td>")
        Response.Write("<td width=""43%""><center>")
            Response.Write("Udehold")
        Response.Write("</center></td>")   
    Response.Write("</tr>")
   

    Response.Write("<tr>")
        Response.Write("<td width=""43%""><center>")
            Response.Write("<select name=""Team1"">")
                For Idx=LBound(TeamArr) To UBound(TeamArr)
                    Response.Write("<option value=""" &  TeamArr(Idx) & """>")
                    Response.Write("" & TeamArr(Idx) & "")
                    Response.Write("</option>")
                Next
            Response.Write("</center></select>")
        Response.Write("</td>")
        Response.Write("<td width=""5%""><center>")
            Response.Write("<input type=""text"" name=""Goal1"" size=""5"" maxlength=""100"" value=""" & Request.Querystring("Goal1") & """>")
        Response.Write("</td>")
        Response.Write("<td width=""4%"">")
            Response.Write("")
        Response.Write("</td>")
        Response.Write("<td width=""5%"">")
            Response.Write("<input type=""text"" name=""Goal2"" size=""5"" maxlength=""100"" value=""" & Request.Querystring("Goal2") & """>")
        Response.Write("</td>")
        Response.Write("<td width=""43%""><center>")
            Response.Write("<select name=""Team2"">")
                For Idx=LBound(TeamArr) To UBound(TeamArr)
                    Response.Write("<option value=""" &  TeamArr(Idx) & """>")
                    Response.Write("" & TeamArr(Idx) & "")
                    Response.Write("</option>")
                Next
            Response.Write("</select>")
        Response.Write("</center></td>")   
    Response.Write("</tr>")
   
    Response.Write("<tr>")
        Response.Write("<td width=""43%""><center>")
            Response.Write("stats")
        Response.Write("</center></td>")
        Response.Write("<td width=""5%"">")
            Response.Write("")
        Response.Write("</td>")
        Response.Write("<td width=""4%"">")
            Response.Write("")
        Response.Write("</td>")
        Response.Write("<td width=""5%"">")
            Response.Write("")
        Response.Write("</td>")
        Response.Write("<td width=""43%""><center>")
            Response.Write("Stats")
        Response.Write("</center></td>")   
    Response.Write("</tr>")
   

    Response.Write("<tr>")
        Response.Write("<td width=""30%""><center>")
            Response.Write("<input type=""text"" name=""stats1"" size=""5"" maxlength=""100"" value=""" & Request.Querystring("stats1") & """>")
        Response.Write("</td>")
        Response.Write("<td width=""5%""><center>")
            Response.Write("")
        Response.Write("</td>")
        Response.Write("<td width=""*%"">")
            Response.Write("")
        Response.Write("</td>")
        Response.Write("<td width=""5%"">")
            Response.Write("")
        Response.Write("</td>")
        Response.Write("<td width=""30%""><center>")
            Response.Write("<input type=""text"" name=""stats2"" size=""5"" maxlength=""100"" value=""" & Request.Querystring("stats2") & """>")
        Response.Write("</center></td>")   
    Response.Write("</tr>")


Response.Write("</table>")




    Response.Write("<center><input type=""submit"" value=""Opret""></center>")   
Response.Write("</form></center>")
%><!--#include file="db_close.asp"--><%
%>
Avatar billede nielle Nybegynder
20. august 2005 - 12:19 #8
Ja, så mangler du jo egentligt bare at indflette den JavaScript-model jeg har angivet. :^)
Avatar billede Slettet bruger
20. august 2005 - 12:49 #9
ja sidder lige og kigger lidt på det.

Men kan ikke helt gennemskue hvad der skal stå i stedet for //.. her:

function setWhere7()
{
    // ..
}
Avatar billede nielle Nybegynder
20. august 2005 - 13:58 #10
Hvis du kan gennemskue hvad der skal ind i setWhere1() og setWhere2() så er det bare at gentage formularen med værdieren 3, 4, 5, etc.
Avatar billede nielle Nybegynder
20. august 2005 - 13:59 #11
Det jeg har skeevet i setWhere1() er jo bare nogle eksemlper for at vise princippet. Du skal seælvfølgelig brige værdier fra din database i stedet.
Avatar billede nielle Nybegynder
20. august 2005 - 14:08 #12
Jeg prøver lige en gang til uden at lave så meget garbage i det:

Det jeg har skevet i setWhere1() er jo bare nogle eksempler for at vise princippet. Du skal selvfølgelig bruge værdier fra din database i stedet.
Avatar billede Slettet bruger
20. august 2005 - 14:23 #13
Var lige ude og løbe.
Troede endligt at dette var et simpelt spørgsmål :P det var det bare ikke.


Kiggede lige lidt mere på den der function setWhere1() og den der function setWhere2().

Jeg kan ikke rigtigt forstå det da jeg er TOTAL nOOb til Java.


Kan du forklare mig lidt om det hele.

    elm = document.getElementById('valg2');
    elm.options.length = 0;

    elm.options[0] = new Option("A", "1");
    elm.options[1] = new Option("B", "2");

    elm.options[0].selected = true;

Hvad btyder de forskellige linjer betyder og gør.
Og hvorfor du bruger A, B og i 2'eren bruger C,D og E?

Det vil være helt super.
Avatar billede nielle Nybegynder
20. august 2005 - 14:30 #14
Når du vælger en option i din første select, skal den anden select konstrueres sådan at den passer med det valgte. Det er netop hvad koden gør:

// Vi finder først select nr. 2 - den har fået id'et 'valg2'.
elm = document.getElementById('valg2');

// Slet de options der står i den.
elm.options.length = 0;

// Tilføj nogle nye options - her to stk.
elm.options[0] = new Option("A", "1");
elm.options[1] = new Option("B", "2");

// Sæt den første option til at være den der er valgt lige nu.
elm.options[0].selected = true;
Avatar billede Slettet bruger
20. august 2005 - 14:35 #15
OK
2 spørgsmål


Hvorfor har du så C, D og E i den næste [Altså i function setWhere7()]??

Og nu har jeg jo også en select-boks der hedder valg3 skal jeg så lave en hel funktion mere for den skal virke på samme måde som den anden.
Eller kan jeg også give den id valg2?
Avatar billede Slettet bruger
20. august 2005 - 14:41 #16
Nåååå nu forstår jeg.

Valg12 skal hente oplysninger i databasen.

Det er jo det der sker med denne:

Set rs = Conn.Execute("SELECT Teamname FROM Liga_Teams Where Liga=""1"" and season=""26"" ORDER BY Teamname")



Dim TeamStr
TeamStr = ""

Do While Not rs.EOF
    If (TeamStr <> "") Then TeamStr = TeamStr & "|"
    TeamStr = TeamStr & rs("teamname")
    rs.MoveNext
Loop

Dim TeamArr
TeamArr = Split(TeamStr, "|")

.
.
.
.
.

            Response.Write("<select name=""Team2"">")
                For Idx=LBound(TeamArr) To UBound(TeamArr)
                    Response.Write("<option value=""" &  TeamArr(Idx) & """>")
                    Response.Write("" & TeamArr(Idx) & "")
                    Response.Write("</option>")
                Next
            Response.Write("</select>")
Avatar billede Slettet bruger
21. august 2005 - 11:34 #17
Kan det stadig lad sig gøre.

Jeg har forstået det sådan at den måde du viser mig det på der er lavet så jeg selv skal skrive de muligheder der skal været i select boksen.
Avatar billede Slettet bruger
21. august 2005 - 18:56 #18
Er der slet ikke nogen der kan svare mig der??
Avatar billede nielle Nybegynder
21. august 2005 - 20:55 #19
Rolig nu, solen skinner og det er superdejlig sensommer, en søndage, og oven i køber ferie - hvem gider sidde foran sin computer hele dagen?! :^)

Jeg troede egentlig at du havde fået fod på problemet, og viste hvordan den skulle tages herfra?

Det der skal ind i det indre af setWhere1() er de options som svarer til:

"SELECT data FROM data Where data=1 ORDER BY Data"

- og de ting der skal ind i setWhere2() er de options som svarer til:

"SELECT data FROM data Where data=2 ORDER BY Data"

osv osv.
Avatar billede Slettet bruger
23. august 2005 - 20:05 #20
Sååå er mit net oppe igen.


Vil det sige at jeg bare skal skrive denne ind i den:
Det er jo den der henter dataen.

            Response.Write("<select name=""Team2"">")
                For Idx=LBound(TeamArr) To UBound(TeamArr)
                    Response.Write("<option value=""" &  TeamArr(Idx) & """>")
                    Response.Write("" & TeamArr(Idx) & "")
                    Response.Write("</option>")
                Next
            Response.Write("</select>")
Avatar billede nielle Nybegynder
23. august 2005 - 21:24 #21
Det kan jeg faktisk hverken sige ja eller nej til uden at have set noget mere af din kode - f.eks. dit SQL.
Avatar billede Slettet bruger
23. august 2005 - 21:26 #22
Jeg har postet hele siden længere oppe.
-->20/08-2005 11:04:16
Avatar billede nielle Nybegynder
23. august 2005 - 22:08 #23
Ok, men så er det ikke rigtigt.

Det du skal lave er noget ASP-kode som udregner hvordan JavaScript-koden skal se ud. Den JavaScript-kode som jeg her taler om er den som jeg har postet i 18/08-2005 22:26:58.

Den består af flere dele: En switch-sætning og et antal setWhereX() funktioner.

Switch-sætningen skal indeholde et antal cases – en for hver Liga. Nu ved jeg ikke lige hvor du får ligaerne fra så det bliver et gæt, men denne del af ASP-koden kunne se sådan her ud:

Trin 1)

<script type='text/javascript'>
function sync(val)
{
    switch (val)
    {
<%
SQL = "SELECT ligaID FROM ligaTabel ORDER BY ligaID"
Set rs = Conn.Execute(SQL)

Do While Not rs.EOF
%>
    case '<% =rs("ligaID") %>' :
        setWhere<% =rs("ligaID") %>();
        break;
<%
    rs.MoveNext
Loop
    default :
        break;
    }
}
</script>

Denne stump ASP-kode, blandet med HTML-kode, udskriver en JavaScript switch, med en case for hver ligaID. Denne case kaldet funktionen  setWhereX() hvor X'et er erstattet med ligaId'et, altså f.eks. setWhere2().

Trin 2)

Længere nede skal du skal have udskrevet JavaScript koden for setWhere2(). Dette kunne se sådan her ud:

<script type='text/javascript'>
<%
ligaID = 2
%>
function setWhere<% =ligaID %>()
{
    elm = document.getElementById('valg2');
    elm.options.length = 0;

<%
SQL = "SELECT Teamname, TeamID FROM Liga_Teams Where Liga=""" & ligaID & """ AND season=""26"" ORDER BY Teamname"
Set rs = Conn.Execute()

OptionNo = 0
Do While Not rs.EOF
%>
    elm.options[<% =OptionNo %>] = new Option("<% =rs("Teamname") %>", "<% =rs("TeamID") %>");
<%
    OptionNo = OptionNo + 1
    rs.MoveNext
Loop
%>
    elm.options[0].selected = true;
}
</script>

Trin 3)

Nu var dette jo kun den ene for ligaID = 2. Hvis du skal have dem alle sammen med skal det derfor styres af en ydre løkke som løber igennem alle ligaID'erne:

<script type='text/javascript'>
<%
SQL = "SELECT ligaID FROM ligaTabel ORDER BY ligaID"
Set rsYdre = Conn.Execute(SQL)

Do While Not rsYdre.EOF
    ligaID = rsYdre(ligaID)
%>
function setWhere<% =ligaID %>()
{
    elm = document.getElementById('valg2');
    elm.options.length = 0;

<%
    SQL = "SELECT Teamname, TeamID FROM Liga_Teams Where Liga=""" & ligaID & """ AND season=""26"" ORDER BY Teamname"
    Set rsIndre = Conn.Execute()

    OptionNo = 0
    Do While Not rsIndre.EOF
%>
    elm.options[<% =OptionNo %>] = new Option("<% =rsIndre("Teamname") %>", "<% =rsIndre(TeamID) %>");
<%
        OptionNo = OptionNo + 1
        rsIndre.MoveNext
    Loop
%>
    elm.options[0].selected = true;
}
<%
    rsYdre.MoveNext
Loop
%>
</script>

Dette er en pæn sammenblanding af ASP-kode som udskriver JavaScript kode, men det skal man ikke lade sig gå på af. Det korte af det lange er at du ender med at have fåret udskrevet noget som ligner den JavaScript struktur som jeg postede længere oppe.
Avatar billede Slettet bruger
23. august 2005 - 22:20 #24
Puhhhaaa Det ser ellers godt ud vil ikke være utaknemlig eller noget eller virker ikke intresseret. Men har været på arbejde i 12 timer idag og er godt kvæstet.

Jeg kigger lige ordenligt på det i morgen når hjerne kan følge med.

Håber det er ok.
Avatar billede nielle Nybegynder
23. august 2005 - 22:21 #25
Kunden har altid ret ;^)
Avatar billede Slettet bruger
24. august 2005 - 16:28 #26
Super nice.

Sidder lige og leger med det nu.
Men der er fejl i skidtet.

Her er siden som den ser ud nu.
Under kan du se fejl meddelsen:
PS. Har måtte rette nogle navne i databasen.

-------------------------------------------------

<%

%><!--#include file="db_open.asp"-->
<script type='text/javascript'>
function sync(val)
{
    switch (val)
    {
<%
SQL = "SELECT LigaID FROM WC_Liga_Liga ORDER BY LigaID"
Set rs = Conn.Execute(SQL)

Do While Not rs.EOF
%>
    case '<% =rs("LigaID") %>' :
        setWhere<% =rs("LigaID") %>();
        break;
<%
    rs.MoveNext
Loop
%> 
    default :
        break;
    }
}
</script>
<%


'Set rs = Conn.Execute("SELECT Teamname FROM Liga_Teams Where Liga=""1"" and season=""26"" ORDER BY Teamname")



Dim TeamStr
TeamStr = ""

Do While Not rs.EOF
    If (TeamStr <> "") Then TeamStr = TeamStr & "|"
    TeamStr = TeamStr & rs("teamname")
    rs.MoveNext
Loop

Dim TeamArr
TeamArr = Split(TeamStr, "|")




Response.Write("<script type='text/javascript'>")

ligaID = 2
%>
function setWhere<% =rs("LigaID") %>()
{
    elm = document.getElementById('valg2');
    elm.options.length = 0;

<%
SQL = "SELECT Teamname, TeamID FROM WC_Liga_Teams Where Liga=""" & ligaID & """ AND season=""26"" ORDER BY Teamname"
Set rs = Conn.Execute()

OptionNo = 0
Do While Not rs.EOF
%>
    elm.options[<% =OptionNo %>] = new Option("<% =rs("Teamname") %>", "<% =rs("TeamID") %>");
<%
    OptionNo = OptionNo + 1
    rs.MoveNext
Loop
%>
    elm.options[0].selected = true;
}
<%
Response.Write("</script>")




Response.Write("<center><form action=""liga_match_create.asp"" method=""post"">")

Response.Write("<table width=""75%"">")
    Response.Write("<tr>")
        Response.Write("<td Width=""100%"" align=""Center"">")
            Response.Write("<select name=""Liga"" onchange=""location.href?site='liga_match_add.asp?where='+this.value"">")
                Response.Write("<option value="""""">VÆLG</option>")
                Response.Write("<option value=""1"">1</option>")
                Response.Write("<option value=""2"">1</option>")
                Response.Write("<option value=""3"">2</option>")
                Response.Write("<option value=""4"">3</option>")
                Response.Write("<option value=""5"">4</option>")
                Response.Write("<option value=""6"">5</option>")
                Response.Write("<option value=""7"">6</option>")
            Response.Write("</select>")
        Response.Write("</td>")
    Response.Write("</tr>")
Response.Write("</table>")

Response.Write("<table width=""75%"">")
    Response.Write("<tr>")
        Response.Write("<td Width=""100%"" align=""Center"">")
            Response.Write("Dato: <input type=""text"" name=""Dato"" size=""10"" maxlength=""100""> åååå-mm-dd")
        Response.Write("</td>")
    Response.Write("</tr>")
Response.Write("</table>")

   
Response.Write("<table width=""75%"">")
    Response.Write("<tr>")
        Response.Write("<td width=""43%""><center>")
            Response.Write("Hjemmehold")
        Response.Write("</center></td>")
        Response.Write("<td width=""5%"">")
            Response.Write("")
        Response.Write("</td>")
        Response.Write("<td width=""4%"">")
            Response.Write("vs.")
        Response.Write("</td>")
        Response.Write("<td width=""5%"">")
            Response.Write("")
        Response.Write("</td>")
        Response.Write("<td width=""43%""><center>")
            Response.Write("Udehold")
        Response.Write("</center></td>")   
    Response.Write("</tr>")
   

    Response.Write("<tr>")
        Response.Write("<td width=""43%""><center>")
            Response.Write("<select name=""Team1"">")
                For Idx=LBound(TeamArr) To UBound(TeamArr)
                    Response.Write("<option value=""" &  TeamArr(Idx) & """>")
                    Response.Write("" & TeamArr(Idx) & "")
                    Response.Write("</option>")
                Next
            Response.Write("</center></select>")
        Response.Write("</td>")
        Response.Write("<td width=""5%""><center>")
            Response.Write("<input type=""text"" name=""Goal1"" size=""5"" maxlength=""100"" value=""" & Request.Querystring("Goal1") & """>")
        Response.Write("</td>")
        Response.Write("<td width=""4%"">")
            Response.Write("")
        Response.Write("</td>")
        Response.Write("<td width=""5%"">")
            Response.Write("<input type=""text"" name=""Goal2"" size=""5"" maxlength=""100"" value=""" & Request.Querystring("Goal2") & """>")
        Response.Write("</td>")
        Response.Write("<td width=""43%""><center>")
            Response.Write("<select name=""Team2"">")
                For Idx=LBound(TeamArr) To UBound(TeamArr)
                    Response.Write("<option value=""" &  TeamArr(Idx) & """>")
                    Response.Write("" & TeamArr(Idx) & "")
                    Response.Write("</option>")
                Next
            Response.Write("</select>")
        Response.Write("</center></td>")   
    Response.Write("</tr>")
   
    Response.Write("<tr>")
        Response.Write("<td width=""43%""><center>")
            Response.Write("Hatstats")
        Response.Write("</center></td>")
        Response.Write("<td width=""5%"">")
            Response.Write("")
        Response.Write("</td>")
        Response.Write("<td width=""4%"">")
            Response.Write("")
        Response.Write("</td>")
        Response.Write("<td width=""5%"">")
            Response.Write("")
        Response.Write("</td>")
        Response.Write("<td width=""43%""><center>")
            Response.Write("Hatstats")
        Response.Write("</center></td>")   
    Response.Write("</tr>")
   

    Response.Write("<tr>")
        Response.Write("<td width=""30%""><center>")
            Response.Write("<input type=""text"" name=""stats1"" size=""5"" maxlength=""100"" value=""" & Request.Querystring("Hatstats1") & """>")
        Response.Write("</td>")
        Response.Write("<td width=""5%""><center>")
            Response.Write("")
        Response.Write("</td>")
        Response.Write("<td width=""*%"">")
            Response.Write("")
        Response.Write("</td>")
        Response.Write("<td width=""5%"">")
            Response.Write("")
        Response.Write("</td>")
        Response.Write("<td width=""30%""><center>")
            Response.Write("<input type=""text"" name=""stats2"" size=""5"" maxlength=""100"" value=""" & Request.Querystring("Hatstats2") & """>")
        Response.Write("</center></td>")   
    Response.Write("</tr>")


Response.Write("</table>")




    Response.Write("<center><input type=""submit"" value=""Opret""></center>")   
Response.Write("</form></center>")
%><!--#include file="db_close.asp"--><%
%>


-------------------------------------------------



Fejl besked:

-------------------------------------------------

function setWhere

ADODB.Field error '80020009'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
Avatar billede Slettet bruger
24. august 2005 - 16:29 #27
Ved godt det måske ikke er sat rigtigt ind men vil lige have det til at virke.
Avatar billede nielle Nybegynder
24. august 2005 - 19:55 #28
Jeg har markeret det stad hvor fejlen er:

<%
'Set rs = Conn.Execute("SELECT Teamname FROM Liga_Teams Where Liga=""1"" and season=""26"" ORDER BY Teamname")

Dim TeamStr
TeamStr = ""

Do While Not rs.EOF
    If (TeamStr <> "") Then TeamStr = TeamStr & "|"
    TeamStr = TeamStr & rs("teamname")
    rs.MoveNext
Loop

Dim TeamArr
TeamArr = Split(TeamStr, "|")

Response.Write("<script type='text/javascript'>")

ligaID = 2
%>
function setWhere<% =rs("LigaID") %>()  ' FEJLEN ER HER
{
    elm = document.getElementById('valg2');
    elm.options.length = 0;

... fejlen opstår fordi at du begynder at bruge din rs uden at der er udført en Conn.Execute - du er mao. ved enden af den forrige du brugte.
Avatar billede Slettet bruger
24. august 2005 - 20:36 #29
Sådan nu skriver den ikke fejlen men viser bare en tom side.
Avatar billede Slettet bruger
24. august 2005 - 20:37 #30
function setWhere

ADODB.Field error '80020009'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.


Stadig samme fejl. :(
Avatar billede nielle Nybegynder
24. august 2005 - 20:39 #31
Du bliver jo nok nødt til at vise din nuværende kode hvis jeg skal kunne hjælpe dig.
Avatar billede nielle Nybegynder
24. august 2005 - 20:40 #32
... men hvorfor tager du ikke bare den kode jeg har postet 23/08-2005 22:08:15 og retter SQL'en til?
Avatar billede Slettet bruger
24. august 2005 - 20:45 #33
Det gjorde jeg også men så viste den en masse små fejl.
Dem fik jeg rettet.

Og nu kom denne fejl så.:


Den nye side:

<%

%><!--#include file="db_open.asp"-->
<script type='text/javascript'>
function sync(val)
{
    switch (val)
    {
<%
SQL = "SELECT LigaID FROM WC_Liga_Liga ORDER BY LigaID"
Set rs = Conn.Execute(SQL)


Do While Not rs.EOF
%>
    case '<% =rs("LigaID") %>' :
        setWhere<% =rs("LigaID") %>();
        break;
<%
    rs.MoveNext
Loop

%> 
    default :
        break;
    }
}
</script>
<%


'Set rs = Conn.Execute("SELECT Teamname FROM Liga_Teams Where Liga=""1"" and season=""26"" ORDER BY Teamname")



Dim TeamStr
TeamStr = ""

Do While Not rs.EOF
    If (TeamStr <> "") Then TeamStr = TeamStr & "|"
    TeamStr = TeamStr & rs("teamname")
    rs.MoveNext
Loop

Dim TeamArr
TeamArr = Split(TeamStr, "|")




Response.Write("<script type='text/javascript'>")

ligaID = 2
%>
function setWhere<% =rs("LigaID") %>()
{
    elm = document.getElementById('valg2');
    elm.options.length = 0;
<%
SQL = "SELECT Teamname, TeamID FROM WC_Liga_Teams Where Liga=""" & ligaID & """ AND season=""26"" ORDER BY Teamname"
Set rs = Conn.Execute()

OptionNo = 0

Do While Not rs.EOF
%>
    elm.options[<% =OptionNo %>] = new Option("<% =rs("Teamname") %>", "<% =rs("TeamID") %>");
<%
    OptionNo = OptionNo + 1
    rs.MoveNext
Loop

%>
    elm.options[0].selected = true;
}
<%
Response.Write("</script>")




Response.Write("<center><form action=""liga_match_create.asp"" method=""post"">")

Response.Write("<table width=""75%"">")
    Response.Write("<tr>")
        Response.Write("<td Width=""100%"" align=""Center"">")
            Response.Write("<select name=""Liga"" onchange=""location.href?site='liga_match_add.asp?where='+this.value"">")
                Response.Write("<option value="""""">VÆLG</option>")
                Response.Write("<option value=""1"">1</option>")
                Response.Write("<option value=""2"">1</option>")
                Response.Write("<option value=""3"">2</option>")
                Response.Write("<option value=""4"">3</option>")
                Response.Write("<option value=""5"">4</option>")
                Response.Write("<option value=""6"">5</option>")
                Response.Write("<option value=""7"">6</option>")
            Response.Write("</select>")
        Response.Write("</td>")
    Response.Write("</tr>")
Response.Write("</table>")

Response.Write("<table width=""75%"">")
    Response.Write("<tr>")
        Response.Write("<td Width=""100%"" align=""Center"">")
            Response.Write("Dato: <input type=""text"" name=""Dato"" size=""10"" maxlength=""100""> åååå-mm-dd")
        Response.Write("</td>")
    Response.Write("</tr>")
Response.Write("</table>")

   
Response.Write("<table width=""75%"">")
    Response.Write("<tr>")
        Response.Write("<td width=""43%""><center>")
            Response.Write("Hjemmehold")
        Response.Write("</center></td>")
        Response.Write("<td width=""5%"">")
            Response.Write("")
        Response.Write("</td>")
        Response.Write("<td width=""4%"">")
            Response.Write("vs.")
        Response.Write("</td>")
        Response.Write("<td width=""5%"">")
            Response.Write("")
        Response.Write("</td>")
        Response.Write("<td width=""43%""><center>")
            Response.Write("Udehold")
        Response.Write("</center></td>")   
    Response.Write("</tr>")
   

    Response.Write("<tr>")
        Response.Write("<td width=""43%""><center>")
            Response.Write("<select name=""Team1"">")
                For Idx=LBound(TeamArr) To UBound(TeamArr)
                    Response.Write("<option value=""" &  TeamArr(Idx) & """>")
                    Response.Write("" & TeamArr(Idx) & "")
                    Response.Write("</option>")
                Next
            Response.Write("</center></select>")
        Response.Write("</td>")
        Response.Write("<td width=""5%""><center>")
            Response.Write("<input type=""text"" name=""Goal1"" size=""5"" maxlength=""100"" value=""" & Request.Querystring("Goal1") & """>")
        Response.Write("</td>")
        Response.Write("<td width=""4%"">")
            Response.Write("")
        Response.Write("</td>")
        Response.Write("<td width=""5%"">")
            Response.Write("<input type=""text"" name=""Goal2"" size=""5"" maxlength=""100"" value=""" & Request.Querystring("Goal2") & """>")
        Response.Write("</td>")
        Response.Write("<td width=""43%""><center>")
            Response.Write("<select name=""Team2"">")
                For Idx=LBound(TeamArr) To UBound(TeamArr)
                    Response.Write("<option value=""" &  TeamArr(Idx) & """>")
                    Response.Write("" & TeamArr(Idx) & "")
                    Response.Write("</option>")
                Next
            Response.Write("</select>")
        Response.Write("</center></td>")   
    Response.Write("</tr>")
   
    Response.Write("<tr>")
        Response.Write("<td width=""43%""><center>")
            Response.Write("Hatstats")
        Response.Write("</center></td>")
        Response.Write("<td width=""5%"">")
            Response.Write("")
        Response.Write("</td>")
        Response.Write("<td width=""4%"">")
            Response.Write("")
        Response.Write("</td>")
        Response.Write("<td width=""5%"">")
            Response.Write("")
        Response.Write("</td>")
        Response.Write("<td width=""43%""><center>")
            Response.Write("Hatstats")
        Response.Write("</center></td>")   
    Response.Write("</tr>")
   

    Response.Write("<tr>")
        Response.Write("<td width=""30%""><center>")
            Response.Write("<input type=""text"" name=""stats1"" size=""5"" maxlength=""100"" value=""" & Request.Querystring("Hatstats1") & """>")
        Response.Write("</td>")
        Response.Write("<td width=""5%""><center>")
            Response.Write("")
        Response.Write("</td>")
        Response.Write("<td width=""*%"">")
            Response.Write("")
        Response.Write("</td>")
        Response.Write("<td width=""5%"">")
            Response.Write("")
        Response.Write("</td>")
        Response.Write("<td width=""30%""><center>")
            Response.Write("<input type=""text"" name=""stats2"" size=""5"" maxlength=""100"" value=""" & Request.Querystring("Hatstats2") & """>")
        Response.Write("</center></td>")   
    Response.Write("</tr>")


Response.Write("</table>")




    Response.Write("<center><input type=""submit"" value=""Opret""></center>")   
Response.Write("</form></center>")
%><!--#include file="db_close.asp"--><%
%>
Avatar billede nielle Nybegynder
26. august 2005 - 09:37 #34
Prøv denne her stump kode til at udskrive JavaScript delen:

<!--#include file="db_open.asp"-->
<script type='text/javascript'>
function sync(val)
{
    switch (val)
    {
<%
SQL = "SELECT LigaID FROM WC_Liga_Liga ORDER BY LigaID"
Set rsYdre = Conn.Execute(SQL)

Do While Not rsYdre.EOF
%>
        case '<% =rsYdre("LigaID") %>' :
        setWhere<% =rsYdre("LigaID") %>();
        break;
<%
    rsYdre.MoveNext
Loop
        default :
        break;
    }
}

<%
SQL = "SELECT LigaID FROM WC_Liga_Liga ORDER BY LigaID"
Set rsYdre = Conn.Execute(SQL)

Do While Not rsYdre.EOF
    LigaID = rsYdre("LigaID")
%>
function setWhere<% =LigaID %>()
{
    elm = document.getElementById('valg2');
    elm.options.length = 0;

<%
    SQL = "SELECT Teamname, TeamID FROM Liga_Teams Where Liga='" & LigaID & "' AND season='26' ORDER BY Teamname"
    Set rsIndre = Conn.Execute()

    OptionNo = 0
    Do While Not rsIndre.EOF
%>
    elm.options[<% =OptionNo %>] = new Option("<% =rsIndre("Teamname") %>", "<% =rsIndre(TeamID) %>");
<%
        OptionNo = OptionNo + 1
        rsIndre.MoveNext
    Loop
%>
    elm.options[0].selected = true;
}

<%
    rsYdre.MoveNext
Loop
%>
</script>
Avatar billede Slettet bruger
26. august 2005 - 16:42 #35
Fejl:

Microsoft VBScript compilation  error '800a03ea'

Syntax error

/wc/liga_match_add.asp, line 22

break;
-----^
Avatar billede Slettet bruger
26. august 2005 - 16:43 #36
Det er i denne linje:

<!--#include file="db_open.asp"-->
<script type='text/javascript'>
function sync(val)
{
    switch (val)
    {
<%
SQL = "SELECT LigaID FROM WC_Liga_Liga ORDER BY LigaID"
Set rsYdre = Conn.Execute(SQL)

Do While Not rsYdre.EOF
%>
        case '<% =rsYdre("LigaID") %>' :
        setWhere<% =rsYdre("LigaID") %>();
        break;
<%
    rsYdre.MoveNext
Loop
        default :
        break;  < ---------------- HER
Avatar billede nielle Nybegynder
26. august 2005 - 18:41 #37
<%
    rsYdre.MoveNext
Loop
%>  < ---------------- HER
        default :
        break;
Avatar billede Slettet bruger
26. august 2005 - 18:50 #38
function sync(val) { switch (val) { case '1' : setWhere1(); break; case '2' : setWhere2(); break; case '3' : setWhere3(); break; case '4' : setWhere4(); break; case '5' : setWhere5(); break; case '6' : setWhere6(); break; case '7' : setWhere7(); break; default : break; } } function setWhere1() { elm = document.getElementById('valg2'); elm.options.length = 0;

Microsoft VBScript runtime error '800a01c2'

Wrong number of arguments or invalid property assignment: 'execute'

/wc/liga_match_add.asp, line 41






<%
    SQL = "SELECT Teamname, TeamID FROM Liga_Teams Where Liga='" & LigaID & "' AND season='26' ORDER BY Teamname"
    Set rsIndre = Conn.Execute() <-------------- Linje 41
Avatar billede Slettet bruger
26. august 2005 - 18:52 #39
Skal der ikke stå SQL i ()??
Avatar billede nielle Nybegynder
26. august 2005 - 18:55 #40
Æhee, jov. Selvfølgelig.

Set rsIndre = Conn.Execute(SQL)
Avatar billede Slettet bruger
26. august 2005 - 19:00 #41
Ja se nu virker den del så.
Men så er der dette:

Microsoft VBScript runtime  error '800a01a8'

Object required: ''

/wc/liga_match_add.asp, line 69





Dim TeamStr
TeamStr = ""

Do While Not rs.EOF  <-------------  Linje 69
    If (TeamStr <> "") Then TeamStr = TeamStr & "|"
    TeamStr = TeamStr & rs("teamname")
    rs.MoveNext
Loop

Dim TeamArr
TeamArr = Split(TeamStr, "|")
Avatar billede nielle Nybegynder
26. august 2005 - 19:09 #42
Det er jo ikke en del at min kode det der, så jeg kan ikke sige noget bestemt om hvad der kan være galt, men mon ikke du mangler noget i stil med:

Ser rs = Conn.Ececute(... noget SQL ...)

- før at du begynder at bruge rs?
Avatar billede Slettet bruger
26. august 2005 - 19:12 #43
Hmm jamen det forstår jeg nemlig ikke for den har virket før jo.
Avatar billede Slettet bruger
26. august 2005 - 19:20 #44
Sådan nu mangler jeg bare 2 ting.

1. At jeg kan se en Dropdown boks hvor man vælger liga.

2. At jeg kan se en Dropdown boks hvor man vælger teamname where Liga=""" & ligaID & """
Avatar billede nielle Nybegynder
26. august 2005 - 19:22 #45
Hmm jamen det forstår jeg nemlig ikke for den har virket før jo.>

Det er jo nok fordi at jeg systematisk har kaldt mine for rdIndre og rsYdre - grunden til at dit har fungeret før har så været at du har genbrugt mine variable. det kan dog aldrig have fungeret korrekt hvis du ikke også har haft en Conn.Ececute tilknyttet - for då hart du bare været ved enden af den forrige.
Avatar billede Slettet bruger
26. august 2005 - 19:25 #46
Hehe ja men det skulle ikke bruges alligevel.
Så jeg har slettet det og som jeg skrev før:


Sådan nu mangler jeg bare 2 ting.

1. At jeg kan se en Dropdown boks hvor man vælger liga.

2. At jeg kan se en Dropdown boks hvor man vælger teamname where Liga=""" & ligaID & """
Avatar billede nielle Nybegynder
26. august 2005 - 19:29 #47
Ligaen er den ud udskriver med:

            Response.Write("<select name=""Liga"" onchange=""location.href?site='liga_match_add.asp?where='+this.value"">")
                Response.Write("<option value="""""">VÆLG</option>")
                Response.Write("<option value=""1"">1</option>")
                Response.Write("<option value=""2"">1</option>")
                Response.Write("<option value=""3"">2</option>")
                Response.Write("<option value=""4"">3</option>")
                Response.Write("<option value=""5"">4</option>")
                Response.Write("<option value=""6"">5</option>")
                Response.Write("<option value=""7"">6</option>")
            Response.Write("</select>")

For at få den anden skal du bare indsætte denne her et eller andet sted på din side:

<select id='valg2' name='valg2'>
</select>
Avatar billede Slettet bruger
26. august 2005 - 19:37 #48
Ja nu ligner det efterhånden det jeg vil have.

Men når jeg vælger en Liga skulle den jo gerne opdatere siden så der kommer noget i Valg2 dropdown'erne.
Avatar billede nielle Nybegynder
26. august 2005 - 19:50 #49
Det skulle der ogsåp helst komme - lige nu er det vist kun tal der kommer i option-felterne - nemlig ligaID'erne.
Avatar billede Slettet bruger
26. august 2005 - 20:01 #50
Jamen det gør den nemlig ikke.
Der sker ikke noget når jeg vælger 1 fx.
Avatar billede nielle Nybegynder
26. august 2005 - 20:22 #51
Prøv lige at tage en Vis Kildekode og post den her.
Avatar billede nielle Nybegynder
26. august 2005 - 20:30 #52
... eller et link kan selvfølgelig også gøre det.
Avatar billede Slettet bruger
26. august 2005 - 20:34 #53
http://www.thelastviking.dk/wc/

Login med

Brugernavn: test
Password: test
Avatar billede Slettet bruger
26. august 2005 - 20:35 #54
Så er det den der hedder "tilføj kamp til liga"
Avatar billede nielle Nybegynder
26. august 2005 - 21:00 #55
"tilføj kamp til liga" >

Den kan jeg altså ikke lige finde?
Avatar billede f1f Nybegynder
26. august 2005 - 21:03 #56
hmmm. kan nogen lige fortælle, hvor finder jeg funktionen opret spørgsmål???
Avatar billede nielle Nybegynder
26. august 2005 - 21:08 #57
f1f> I den blå menubjælke i toppen af siden - Lige ved siden af "Konto".
Avatar billede f1f Nybegynder
26. august 2005 - 21:11 #58
mærkelig...I den blp menubjælke i toppen af siden, der har jeg ikke en kasse der hedder konto.
Avatar billede nielle Nybegynder
26. august 2005 - 21:13 #59
f1f> Der skal stå: Forside, Sektioner, Konto, Opret spørgsmål, Kategorioversigt, Spørgsmåloversigt, Log ud, Info

ddd_dendummedreng> jeg har fundet den - kigger på det.
Avatar billede f1f Nybegynder
26. august 2005 - 21:16 #60
sjov nok, så var den blå nemubjælke helt tom lige før, men nu er de faktisk lige dukket op....men takker for hjælpen
Avatar billede nielle Nybegynder
26. august 2005 - 21:17 #61
Du skal rette denne her:

<select name="Liga" onchange="location.href?site='liga_match_add.asp?where='+this.value">

til:

<select name="Liga" onchange="sync(this.value)">

PS: Du har fået lavet 2 1-taller i den.
Avatar billede Slettet bruger
26. august 2005 - 21:54 #62
f1f det problem har jeg også haft. Ved ikke hvorfor det sker.


Nielle.
Super men det er kun den ene af de 2 'valg2' bokse der virker.
Avatar billede nielle Nybegynder
27. august 2005 - 06:59 #63
Forløbig har vi jo også kun fokuseret på at vi havde to select-bokse i alt.

Du kan ikke have to selects med det samme id, så derfor må den anden af de to altså kaldes:

<select id="valg3" "valg3">
</select>

Derefter skal JavaScrip-delen ændre stil dette:

<!--#include file="db_open.asp"-->
<script type='text/javascript'>
function sync(val)
{
    switch (val)
    {
<%
SQL = "SELECT LigaID FROM WC_Liga_Liga ORDER BY LigaID"
Set rsYdre = Conn.Execute(SQL)

Do While Not rsYdre.EOF
%>
        case '<% =rsYdre("LigaID") %>' :
        setWhere<% =rsYdre("LigaID") %>();
        break;
<%
    rsYdre.MoveNext
Loop
%>
        default :
        break;
    }

    // Kopi af alt fra valg2 over i valg3.

    elm2 = document.getElementById('valg2');
    elm3 = document.getElementById('valg3');

    elm3.options.length = 0;
    for (i=0; i<elm2.options.length; i++)
    {
        elm3.options[i] = new Option(elm2.options[i].text, elm2.options[i].value);
    }
    elm3.options[0].selected = true;
}

<%
SQL = "SELECT LigaID FROM WC_Liga_Liga ORDER BY LigaID"
Set rsYdre = Conn.Execute(SQL)

Do While Not rsYdre.EOF
    LigaID = rsYdre("LigaID")
%>
function setWhere<% =LigaID %>()
{
    elm = document.getElementById('valg2');
    elm.options.length = 0;

<%
    SQL = "SELECT Teamname, TeamID FROM Liga_Teams Where Liga='" & LigaID & "' AND season='26' ORDER BY Teamname"
    Set rsIndre = Conn.Execute(SQL)

    OptionNo = 0
    Do While Not rsIndre.EOF
%>
    elm.options[<% =OptionNo %>] = new Option("<% =rsIndre("Teamname") %>", "<% =rsIndre(TeamID) %>");
<%
        OptionNo = OptionNo + 1
        rsIndre.MoveNext
    Loop
%>
    elm.options[0].selected = true;
}

<%
    rsYdre.MoveNext
Loop
%>
</script>
Avatar billede nielle Nybegynder
27. august 2005 - 07:00 #64
Det skulle være:

<select id="valg3" name="valg3">
</select>
Avatar billede Slettet bruger
27. august 2005 - 14:40 #65
Hey.
Det der det er bare super arbejde.
Selvom der var nogle små fejl i det du skrev så er jeg super glad.
Og hvar også lært lidt fejlmedleser.

Du fortjener de 200 point der er max så send dit svar her og du får 170 i en anden jeg poster når du har fået de her point.

Undeskyld de få point men jeg troede at det var et simpelt spørgsmål.
Avatar billede nielle Nybegynder
27. august 2005 - 21:43 #66
Der er faktisk ingen grund til at oprette et nyt spørgsmål for at give flere point. Ude i højre side er der et menufelt som hedder "Funktioner" og under det, er der et menupunkt til formålet: "Afsæt flere point".

Husk i øvrigt lige at få lukket det originale spørgsmål:

http://www.eksperten.dk/spm/641226

... og et svar :^)


PS: Jeg undskylder fejlene undervejs, men som du jo nok kan se så er det noget kode hvor man virkeligt skal holde tungen lige i munden. :^|
Avatar billede Slettet bruger
28. august 2005 - 21:52 #67
Jamen det gør ikke et spor det var kun dejligt at jeg selv kunne se at trods det jeg ikke fattet meget af det du skrev kunne jeg alligevel rette nogle af de fejl der var.

Så det var kun godt.

Synte iøvrigt at det var en super hjælp du gav en lidt dum person som mig.
Det var bare nice.

De point er fuldt fortjent.
Avatar billede nielle Nybegynder
28. august 2005 - 22:18 #68
Mange tak for point samt de pæne ord. Og så er det jo fedt at du er i stand til at gennemskue de fejl der var - du skal sgu nok komme efter det. :^)
Avatar billede Slettet bruger
29. august 2005 - 15:59 #69
Ja det håber jeg da.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester