WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   <option selected> fungerar inte på ny webserver (https://www.wn.se/forum/showthread.php?t=1040095)

heggejoh 2010-01-19 23:29

<option selected> fungerar inte på ny webserver
 
Hej,

Skall fatta mig så kort och samlat jag bara kan.
Gjorde för en tid sedan ett litet enkelt gränssnitt och formulär på One.com. Nu har vi flyttat hela databasen och webplatsen (som är skriven i .asp)

Scenario.
Man lägger till en person i en databas och får t ex knyta tio lag till hans profil. Lagen väljer man i rullistor, där lagen ligger i en separat tabell. Detta fungerar kanon och jag får upp rätt lag när jag sedan tittar på hans profil men om jag däremot skall editera denne persons profil så får jag inte hans valda lag att bli "selected", att vara valda när "editera-profil"-sidan laddas.

Däremot förs rätt värden med från formuläret sidan innan (har en <form> på "Visa profil"-sidan som skickar infon vidare). Detta har jag kollat genom att låta skriva ut Request.Form osv.

Koden för att sen lista lagen i rullistan ser ut i stil med:

<option value="<%=objGetDataTeams01("cId")%>" <% if Request.Form("Teams01") = objGetDataTeams01("cId") Then %>selected<% end if %>><%=objGetDataTeams01("TeamName")%></option>

Samma kod fungerar alltså prima när jag kör hemsidan på One.com

Väljer jag att på nytt välja lag för aktuell profil och spara profilen så lagras dessa nyvalda lag, så det är _enbart_ att få "selected"-funktionen att fungera. Har testat att köra

selected="selected"

också men det är samma sak.

Är det någon som har en möjlig lösning på detta? Säkert ett otrooooligt enkelt problem, men mina kunskaper är dessvärre något ringa.

Stora tack på förhand.

MVH
// Hegge

allstars 2010-01-19 23:40

Citat:

Ursprungligen postat av heggejoh (Inlägg 20339762)
Hej,

Skall fatta mig så kort och samlat jag bara kan.
Gjorde för en tid sedan ett litet enkelt gränssnitt och formulär på One.com. Nu har vi flyttat hela databasen och webplatsen (som är skriven i .asp)

Scenario.
Man lägger till en person i en databas och får t ex knyta tio lag till hans profil. Lagen väljer man i rullistor, där lagen ligger i en separat tabell. Detta fungerar kanon och jag får upp rätt lag när jag sedan tittar på hans profil men om jag däremot skall editera denne persons profil så får jag inte hans valda lag att bli "selected", att vara valda när "editera-profil"-sidan laddas.

Däremot förs rätt värden med från formuläret sidan innan (har en <form> på "Visa profil"-sidan som skickar infon vidare). Detta har jag kollat genom att låta skriva ut Request.Form osv.

Koden för att sen lista lagen i rullistan ser ut i stil med:

<option value="<%=objGetDataTeams01("cId")%>" <% if Request.Form("Teams01") = objGetDataTeams01("cId") Then %>selected<% end if %>><%=objGetDataTeams01("TeamName")%></option>

Samma kod fungerar alltså prima när jag kör hemsidan på One.com

Väljer jag att på nytt välja lag för aktuell profil och spara profilen så lagras dessa nyvalda lag, så det är _enbart_ att få "selected"-funktionen att fungera. Har testat att köra

selected="selected"

också men det är samma sak.

Är det någon som har en möjlig lösning på detta? Säkert ett otrooooligt enkelt problem, men mina kunskaper är dessvärre något ringa.

Stora tack på förhand.

MVH
// Hegge

Antaligen är det serverkod som inte exekuteras rätt, för parametern selected skall fungera oavsett server då detta styrs hos användaren.

kör hellre:
<% if Request.Form("Teams01") = objGetDataTeams01("cId") Then response.write "selected=""selected""" %>>
kolla i htmlen vad som genereras.
Gör grundlig felsökning och skriv ut vad som jämförs för att hitta felen.

heggejoh 2010-01-20 00:08

Hej,

Tack så väldigt mycket för ditt snabba svar.

Provade att köra denna:
<% if Request.Form("Teams01") = objGetDataTeams01("cId") Then response.write "selected=""selected""" %>>
, som du tipsade om, men det blev samma sak dock.

Om jag sätter värdet från Request.Form som en variabel och testar att skriva ut denna stämmer värdet, och använder jag sen variabeln i strängen ovan i stället för Request.Form blir det ändå samma sak.

Om jag provar att skriva ut
<%=objGetDataTeams01("cId")%>
<%=Request.Form("Teams01")%>
, så ser jag att rätt värden genereras/visas.

Om jag väljer att uppdatera profilen, efter att ha valt samma lag / eller ett annat , ja då uppdateras profilen rätt och rätt information visas när samma profil visas efteråt. Men varje gång jag skall gå in i profilen, för att kanske ändra en address eller annan uppgift så måste jag välja alla lag på nytt.

Är väldigt tacksam till alla som fortsatt kan komma med tips och möjliga lösningar.

Servern som sidan nu ligger på är förresten Windows 2003 R2, om det är av vikt vid fortsatt felsökning.

MVH
// Hegge

heggejoh 2010-01-20 00:28

En sak jag testade nu var denna:

<% if Request.Form("Teams01") = 102 Then response.write "selected=""selected""" %>>
samt
<% if Request.Form("Teams01") = "102" Then response.write "selected=""selected""" %>>

Om jag sen valde det lag som jag visste hade cId "102" så blev det ett lag som blev "selected" i formuläret, men inte lag "102" utan "139" som är det sista numret/laget i tabellen med lag.

Bifogar här såsom hela select-satsen ser ut.

<select size="1" name="Teams01" class="textnormal">
<option value="0">Inget lag har valts</option>
<% If objGetDataTeams01.EOF Then %><% else %>
<%
objGetDataTeams01.movefirst
Do until objGetDataTeams01.EOF
%>
<option value="<%=objGetDataTeams01("cId")%>" <% if Request.Form("Teams01") = objGetDataTeams01("cId") Then %>selected<% end if %>><%=objGetDataTeams01("Sport")%>, <%=objGetDataTeams01("TeamName")%>, <%=objGetDataTeams01("Division")%></option>
<%
objGetDataTeams01.MoveNext
loop
%>
</select><% end if %>

allstars 2010-01-20 07:51

Det verkar som du inte felsöker.
Är värdena i html korrekta?


testa if Request.Form("Teams01") = cStr(objGetDataTeams01("cId")) Then

heggejoh 2010-01-20 10:59

Det löste sig, till slut.

Trots att värdena stämde, på alla vis, fram och tillbaka och såg exakt likadana ut när man skrev ut dem så fungerade det inte.

Lösningen blev

team01 = cInt(Request.Form(teams01))

Att göra om textsträngen i formuläret till en siffra.

Puh, många timmars huvudbry är över. :)

Tack till er som tittat i tråden och till dig som svarade ovan.

Må väl.

MVH
// Hegge


Alla tider är GMT +2. Klockan är nu 11:12.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson