Avatar billede trekkies Juniormester
29. oktober 2005 - 14:36 Der er 28 kommentarer og
1 løsning

fang sidens navn

Hej alle sammen

Jeg vil lave sådan at personer som er på min side kan vælge Dansk eller Engelsk sprog på siden, men når at man klikker på det sprog man vil have, skal man ikke tilbage til forsiden, men man skal blive på den side som er på, men sidens sprog skal bare ændres, hvordan gør man det?

Lige som her på eksperten.dk, man skriver sit brugernavn og adgangskode ind, så bliver man på den side som man er på.
Avatar billede softspot Forsker
29. oktober 2005 - 14:40 #1
Når brugeren vælger sprog kan du bare poste tilbage til siden selv med en parameter eller som en form med POST og så skifte sproget i f.eks. en session-variabel...
Avatar billede trekkies Juniormester
29. oktober 2005 - 14:41 #2
Mener du ved at lave en history -1?
Avatar billede softspot Forsker
29. oktober 2005 - 14:46 #3
Nej, for det der ligger i history.go(-1) er i det "gamle" sprog. Jeg havde tænkt mig noget á la:

<form method="post" action="<%=Request.ServerVariables("SCRIPT_NAME")%>">
  <input type="image" name="langdk" src="dk-flag.gif">
  <input type="image" name="languk" src="uk-flag.gif">
</form>

i serverscriptet kunne du så have flg. kode:

<%
if request.form("langdk.x") <> "" then
  session("lang") = "dk"
elseif request.form("languk") <> "" then
  session("lang") = "uk"
end if

' slå op i databasen og find de samme data i det nye sprog
' ...og render siden som det ellers er krævet.
%>
Avatar billede wilweb Nybegynder
29. oktober 2005 - 14:47 #4
du kunne jo bruge en database, hvor du har dine sprog i.
en form, hvor du har 2 knapper (DK og GB). Den danske knap har en name=sprog og  value=0 og GB har kanppen har name=sprog  og value=1

Når siden hentes første gang er variablen 'sprog=0' altså tom (det kunne være den dansk)

Når brugeren trykker på en af knapperen reloader du siden og henter værdien af  variablen 'sprog'
sprog=request.form("sprog")
if sprog = 1 then
  'hent GB text fra databasen
else
  'ellers må det være DK
  'hent GB text fra databasen
end if


noget á la det...
Avatar billede softspot Forsker
29. oktober 2005 - 14:47 #5
Ulempen er at denne kode jo skal inkluderes på alle sider. Alternativt kan du sende din form til en anden asp-side, som så redirecter tilbage til HTTP_REFERER.

<%
if request.form("langdk.x") <> "" then
  session("lang") = "dk"
elseif request.form("languk") <> "" then
  session("lang") = "uk"
end if
Response.Redirect Request.ServerVariables("HTTP_REFERER")
%>
Avatar billede softspot Forsker
29. oktober 2005 - 14:48 #6
wilweb >> det er nok også nødvendigt at gemme sprogvalget til senere, ellers er det vel svært at fastholde sproget...
Avatar billede wilweb Nybegynder
29. oktober 2005 - 14:51 #7
ja, softspot det har du helt ret i :>
Avatar billede trekkies Juniormester
29. oktober 2005 - 14:51 #8
Jeg vil kigge på nogle af jeres forslag.
Avatar billede trekkies Juniormester
29. oktober 2005 - 15:10 #9
Jeg er ved at kigge på det, men mangler et lille ord oversat til engelsk, håber at I kan hjælpe mig.

Det danske ord "Forside" hvad er det bedste engelske ord for det, men ordbog siger "Front page" men det lyder lidt mærkeligt, hvad vil I sige?
Avatar billede softspot Forsker
29. oktober 2005 - 15:13 #10
Home
Avatar billede trekkies Juniormester
29. oktober 2005 - 15:14 #11
Tak for det :)
Avatar billede softspot Forsker
29. oktober 2005 - 15:16 #12
no problemo - ænglis is my bæst
Avatar billede trekkies Juniormester
10. november 2005 - 19:12 #13
Jeg er løbet ind i et lille problem.
Jeg bruger denne a href sætning
<a href=""" & Request.ServerVariables("SCRIPT_NAME") & """>Klik her</a>

Men hvordan får jeg language med over, normalt vil jeg gøre det sådan:
<a href="siden.asp?language=<%=langauge%>">Klik her</a>

Jeg har prøvet at indsætte ?language=<%=language%> forskellige steder i sætningen, men jeg får stadig det samme link frem, og det er index.asp.
Avatar billede softspot Forsker
10. november 2005 - 22:24 #14
Du kan fange alle parametre med request.querystring, eller specifikke parametre med request.querystring("language") og så kan du jo bare sætte dem sammen...
Avatar billede trekkies Juniormester
11. november 2005 - 13:07 #15
Hvad mener du med request.querystring("language")?

Skal den ind sammen med """ & Request.ServerVariables("SCRIPT_NAME") & """?
Avatar billede softspot Forsker
11. november 2005 - 13:33 #16
Hmmmm... jeg tror jeg har tænkt på noget andet da jeg svarede. Hvis du skifter sprog via et link, så skal den kode jeg illustrerede i 29/10-2005 14:47:23 basere sig på request.querystring i stedet for request.form, som eksemplet viser...

<%
if request.querystring("language") <> "" then
  session("lang") = "dk"
elseif request.querystring("language") <> "" then
  session("lang") = "uk"
end if
Response.Redirect Request.ServerVariables("HTTP_REFERER")
%>

men det er så kun nødvendigt at sende en parameter med til denne side, hvis du vil skifte sprog... eller har jeg stadig ikke fattet hvad det er du vil?
Avatar billede trekkies Juniormester
11. november 2005 - 17:32 #17
Normalt når man vil have f.eks. et id med over til den anden side, så gør jeg det sådan:
<a href="side.asp?id=<%=id%>Klik her</a>
og der kommer til at stå hvis id'et er 8:
side.asp?id=8

Men hvordan får jeg der til at stå følgende:
index.asp?language=DK eller index.asp?language=UK
Jeg bruger denne kode:
<a href=""" & Request.ServerVariables("SCRIPT_NAME") & """>Klik her</a>

Jeg har prøvet at sætte ?langauge=<%=language%> forskellige steder i sætningen men intet hjælper.

Klik på linket:
http://www.darkskies.dk/exp_billeder/sprog.jpg

Der har jeg et dansk og et engelsk flag, alt efter hvad man klikker på så skal sproget ændre sig til dansk eller engelsk.

Håber at det er til at forstå.
Avatar billede softspot Forsker
11. november 2005 - 17:44 #18
Virker dette ikke:

response.write "<a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?language=DK"">Klik her for dansk</a>"


eller

<a href="<%=Request.ServerVariables("SCRIPT_NAME")%>?language=DK">Klik her for dansk</a>
Avatar billede softspot Forsker
11. november 2005 - 17:47 #19
Den først foreslåede løsning (altså 29/10-2005 14:46:06) benytter dog en formular til at opnå dette skift... jeg kan ikke helt finde ud af hvorfor du ikke vil bruge den løsning?
Avatar billede trekkies Juniormester
11. november 2005 - 17:47 #20
Det sidste ser ud til at virke, vil prøve det fuldt efter at jeg hat spist.

Forsættelse følger...
Avatar billede trekkies Juniormester
12. november 2005 - 16:35 #21
Brug for lidt mere hjælp:
Hvis jeg klikker på DK flaget så kommer dette frem:
DK:
http://www.darkskies.dk/exp_billeder/DK.jpg

Hvis jeg klikker på UK flaget så kommer dette frem:
UK:
http://www.darkskies.dk/exp_billeder/UK.jpg

Min SQL ser sådan ud:
<%
    strSQL = "SELECT * FROM forside WHERE language = " & Request.Querystring("language")

    Response.Write strSQL
    response.end
%>

Men hvis jeg bruger denne SQL streng:
<%
    strSQL = "SELECT * FROM forside WHERE language = " & Request.Querystring("language")

'    Response.Write strSQL
'    response.end
    Conn.Execute(strSQL)
    set rs = conn.execute(strSQL)
%>

Så får jeg en fejl:
http://www.darkskies.dk/exp_billeder/fejl1.jpg

Linie 8 er hvor at min conn.execute(strSQL) er, men tror ar fejlen er ved den første linie, hvad siger I?
Avatar billede softspot Forsker
12. november 2005 - 16:54 #22
kolonnen language er vel et tekst-felt...?
Avatar billede softspot Forsker
12. november 2005 - 16:55 #23
altså skal du benytte flg. SQL i stedet:

strSQL = "SELECT * FROM forside WHERE language = '" & Request.Querystring("language") & "'"
Avatar billede trekkies Juniormester
12. november 2005 - 17:06 #24
Hallo, der kan man bare se :)

Et lille spørgsmål mere, hvis jeg går ind på siden som normalt, var dette link:
localhost/darkskies/index.asp
Så kommer min midter side ikke med, det kommer vel også til at være når at jeg uploader den til nettet, Hvad kan jeg gør for at starter med DK?
Avatar billede softspot Forsker
12. november 2005 - 17:20 #25
Hvis nu du gemmer sproget i session("lang") (som jeg lagde op til i et af de første posts), så kan du jo bare sætte sproget til DK (ved at tildele session("lang") værdien "DK" i global.asa-eventet Session_OnStart). Når du så skal hente data, kan du benytte flg. SQL

strSQL = "SELECT * FROM forside WHERE language = '" & Session("lang") & "'"

Hvis du ikke ønsker at benytte session-variabel, men i stedet den løsning du er kommet fra til her til sidst, så skal du nok lave en betingelse omkring dit SQL:

if (Request.Querystring("language") & "") <> "" then
  strSQL = "SELECT * FROM forside WHERE language = '" & Request.Querystring("language") & "'"
else
  strSQL = "SELECT * FROM forside WHERE language = 'DK'"
end if

Din strategi kræver dog bare at du hele tiden bærer sprogvalget med rundt i url'en, hvilket ganske givet bliver en pestillens at have med at gøre i længden...
Avatar billede trekkies Juniormester
12. november 2005 - 17:25 #26
Det virker, men vil lige teste det helt igennem.

Du lægger bare et svar :)
Avatar billede softspot Forsker
12. november 2005 - 17:32 #27
Jamen, så får du da et svar her :)
Avatar billede trekkies Juniormester
12. november 2005 - 19:40 #28
Mange tak for hjælpen.

Du kan have en god weekend :)
Avatar billede softspot Forsker
12. november 2005 - 19:48 #29
Tak i lige måde og velbekomme :)
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
Kurser inden for grundlæggende programmering

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