[asp]vergelijken 2 variables altijd false?

Pagina: 1
Acties:

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 15:11
Heb nu iets raars (of ik zie het absoluut niet natuurlijk!

ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
do while not rsproducts.eof
prodid = rsproducts("prodid")
if prodid = session("prodid") then
selectvar = "selected"
else
selectvar = ""
end if
response.write "<!--"&session("prodid")&"::"&prodid&"-->"
%>
<option value="switch.asp?prodid=<%=prodid%>" <%=selectvar%>>
       <%=rsproducts("prodDesc")%>
</option>
<%
rsproducts.movenext()
loop

Bovenstaande code vult dus een dropdown die met een onChange redirect naar switch.asp?prodid=[x]. Vervolgens worden er op "switch.asp" wat sessions gezet en terug geredirect naar de default.asp

Wat werkt er :)
• De dropdown wordt netjes gevuld door de loop.
• In ieder geval de session("prodid"). (de rest laat ik nog maar even voor wat het is).
• Door middel van de regel "<!--||"&session("prodid")&"::"&prodid&"--> kijk ik in de source van de uitgepoepte HTML of session("prodid") uberhaupt geset wordt. En dat is het geval.

Wat werkt er dan niet :?
• Het if then statement die checkt of session("prodid") = rsproducts("prodid"). Als deze namelijk gelijk zouden zijn, zou er in mijn HTML achter de option value het woordje "selected" moeten verschijnen.

HTML:
1
2
3
4
5
<!--4::9-->
        <option value="switch.asp?prodid=9" >Metaal</option>
<!--4::4-->
        <option value="switch.asp?prodid=4" >Zilver</option>
<!--4::3-->


In bovenstaande output zie je dat regel 3 <!--4::4--> bevat. Hier zou dus het woordje "selected" moeten staan.

Waarom :?
• Ik was dus bezig om in de option het "selected" element te verwerken. Iemand select een waarde uit de dropdown, wordt teruggestuurd naar de default.asp en op de default zie je de selected item geselecteerd staan.
• Je kan het vergelijken met de Viewstate van .Net :)

Waarom gebruik je dan geen .Net :?
• Niet mijn probleem, probleem van een stagiare, en ik kom er niet uit.
• Stagiare is bezig in Legacy asp en geen .Net asp. Helaas...

Ik snap er werkelijk niks van.

[ Voor 14% gewijzigd door TeeDee op 14-09-2004 15:16 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 19:24

gorgi_19

Kruimeltjes zijn weer op :9

Gebruik eens CInt

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 15:11
Hmm. Stom.
Werkt wel.

Maar leg dat eens uit?
string "1" == string "1" of ben ik nou gek?
asp doet daar over het algemeen toch niet moeilijk over?

[ Voor 22% gewijzigd door TeeDee op 14-09-2004 15:22 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 19:24

gorgi_19

Kruimeltjes zijn weer op :9

Of je gek of niet bent, is een andere discussie.. :+

Maar 1 is niet gelijk aan "1" en VBScript is ontzettend ranzig met z'n datatypes, vooral als ze uit Sessions of recordsets komen :) Normaliter kan hij er wel een mouw aan spelden door het casten, maar vergelijken gaat niet altijd goed :)

[ Voor 37% gewijzigd door gorgi_19 op 14-09-2004 15:26 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 15:11
Ik ben me ervan bewust dat een 1 niet gelijk is aan "1".
Maar in asp is toch in principe alles wat in de recordset staat te vergelijken als een string?

Neway, tis opgelost.

offtopic:
ben niet gek


Edit: Aha. Okay. Toch weer wat geleerd.

[ Voor 25% gewijzigd door TeeDee op 14-09-2004 15:28 ]

Heart..pumps blood.Has nothing to do with emotion! Bored