Toon posts:

[ASP] Probleem met het vergelijken van een RequestQueryStrin

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik probeer een link overzicht te maken waarin de records van een tabel getoond worden. Door op 1 van de getoonde records te klikken moet de daar bijbehorende tekst getoond worden.

Ik heb onder ieder getoond item een link gezet naar dezelfde pagina waarin een specifieke onderwerpId aan de link wordt toegevoegd. (zoiets als pagina.asp?OnderwerpId=3)

Mijn idee is om als het ondewerpId in de URL overeenkomt met de onderwerpId van de recordset daar de specifieke tekst te tonen. Dus <% If Request.QueryString("OnderwerpID")= Recordset1.Fields.Item("OnderwerpId") Then %>tekst <% End if %>

Dat werkte niet.
Ik heb eerst de RequestQueryString (RQ) en de Recordset(RS) apart gegenereerd. Dat lijkt te kloppen. Bij bijv. het derde onderwerp is RS onderwerpId= 3 (dezelfde waarde als het RQ onderwerpId in de url)

Het Werkt het wel als ik schrijf
<% If Request.QueryString("OnderwerpID")= "3" And Recordset1.Fields.Item("OnderwerpId")="3" Then %>
tekst behorende bij OnderwerpId=3
<% End If %>

Blijkbaar is regel 40 niet correct. Ik krijg echter geen foutmeldingen o.i.d.


Het Voorbeeld staat op www.programmavcp.nl/cms/i...oadtest.asp?OnderwerpId=3


Welke denk- en/of coderingsfout maak ik. Reacties worden bijzonder op prijs gesteld :-)

mvg

Jeroen


code:
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
    <% 
While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF)) 
%>
<p><a href="uploadtest.asp?OnderwerpId=<%=(Recordset1.Fields.Item("OnderwerpId").Value)%>">RSOnderwerpId= <%=(Recordset1.Fields.Item("OnderwerpId").Value)%></a><br>
    RQ OnderwerpId= <%= Request.QueryString("OnderwerpId") %></p>
<p>
  <!--Onderstaande regel werkt niet goed. Ook al heeft de RQ dezelfde waarde heeft als de RS-->
  <% If Request.QueryString("OnderwerpID")= Recordset1.Fields.Item("OnderwerpId") Then %>
  <p>tekst behorende bij OnderwerpId= <%=(Recordset1.Fields.Item("OnderwerpId").Value)%></p> (RS en RQ zijn het zelfde) <% Else %>RS en RQ zijn verschillend
  <% End If %>
  <!--als ik ze  een vaste waarde geef werkt het wel-->
  <% If Request.QueryString("OnderwerpID")= "3" And Recordset1.Fields.Item("OnderwerpId")="3" Then %>
  <p>tekst behorende bij OnderwerpId=3</p> 
  <% End If %>
  <hr>
</p>
<% 
  Repeat1__index=Repeat1__index+1
  Repeat1__numRows=Repeat1__numRows-1
  Recordset1.MoveNext()
Wend
%>

  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
Je moet de waarde uit je querystring en de waarde uit je recordset met een CInt naar een Integer casten...

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


Verwijderd

Topicstarter
Dit is nieuw voor mij. Kun je aangeven hoe je dat doet of waar een voorbeeld staat.

Verwijderd

Topicstarter
Even geprobeerd met:

<% If CInt(Request.QueryString("OnderwerpID"))= CInt(Recordset1.Fields.Item("OnderwerpId")) Then %>

Dat werkt nu. Kan iemand vertellen waarom? Wat gebeurt er nu precies?

  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
je vergelijkt nu twee getallen ipv een string met een getal (waarbij ik er van uit ga dat je RS("onderwerpID") een int is...

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 08-04 12:54

Jaspertje

Max & Milo.. lief

Je gaat op dit moment 3 met 3 vergelijken. Allebei de waardes zijn nu nummers. Anders vergelijk je een nummer met een string (zeg 3 met drie bijvoorbeeld).
Pagina: 1