Toon posts:

ASP vb Plaatje wordt niet getoond

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb in een database een tekstveld staan, in een pagina wil ik controleren of de waarde voldoet aan een waarde en zo ja dan wil ik een plaatje tonen. Je raadt het al de plaatjes worden niet getoond. Nu heb ik de velden al getrimd maar niks werkt. (dezelfde code werkt wel bij booleans en ook als ik access als database gebruik, maar deze code werkt niet op sql server 2000)

Dit is de code:

code:
1
2
3
4
5
6
7
8
9
if rtrim(ltrim(rs("soortzending")))= "email" then
                            response.write "<img src='./images/email.jpg' alt='E-mail zending'>"
                        elseif rtrim(ltrim(rs("soortzending")))= "post" then
                            response.write "<img src='./images/cv.gif' alt='Post zending'>"
                        elseif rtrim(ltrim(rs("soortzending")))= "beide" then
                            response.write "<img src='./images/cv.gif'> <img src='./images/email.jpg'>"
                        elseif rtrim(ltrim(rs("soortzending")))= "selectie" then    
                            response.write "<img src='./images/selectie.gif' alt='Selectie'>"
                        end if

  • bakakaizoku
  • Registratie: Januari 2002
  • Laatst online: 27-09 18:16
Word de html van het plaatje uberhaupt wel ge'echoed in de source? Als dat wel het geval is, is het een simpel gevalletje van de image paths controleren.

PSN: bakakaizoku - WoW: Thiccblonde (GM of Phoenix Ascension) @ Twisting-Nether


  • asfaloth_arwen
  • Registratie: Februari 2005
  • Nu online
Wat gebeurd er als je gebruikt maakt van de StrComp()? Waarom geef je soortzending als string mee? Lijkt me toch een variabele?

Je bent nu twee strings aan het vergelijken ("soortzending" en "email")

[ Voor 22% gewijzigd door asfaloth_arwen op 20-11-2008 19:41 ]

Specs


Verwijderd

Topicstarter
Het veld soortzending bevat de teksten: email, postzending, selectie en beide
Daar maak ik de vergelijking op: de img paths kloppen want als ik bijvoorbeeld doe

code:
1
rtrim(ltrim(rs("soortzending"))) <> "email"


dan wordt het plaatje wel getoond

  • asfaloth_arwen
  • Registratie: Februari 2005
  • Nu online
Nu ben ik niet zo thuis in ASP/VB, maar moet het niet zijn:

code:
1
rtrim(ltrim(rs(soortzending))) = "email"


Even voor de duidelijkheid. soortzending is een string variabele?

Specs


Verwijderd

Topicstarter
asfaloth_arwen schreef op donderdag 20 november 2008 @ 19:50:
Nu ben ik niet zo thuis in ASP/VB, maar moet het niet zijn:

code:
1
rtrim(ltrim(rs(soortzending))) = "email"


Even voor de duidelijkheid. soortzending is een string variabele?
Ja dat zou de code moeten zijn, maar dan wordt het plaatje niet getoond (overigens moeten de quotjes wel), maar om te kijken of het img path klopt postte ik die code. Ja soortzending is een string variabele.

[ Voor 3% gewijzigd door Verwijderd op 20-11-2008 19:56 ]


  • asfaloth_arwen
  • Registratie: Februari 2005
  • Nu online
Wat geeft:
code:
1
StrComp(cstr(soortzending),"email")<> 0

en:
mattttt schreef op donderdag 20 november 2008 @ 19:38:
Word de html van het plaatje uberhaupt wel ge'echoed in de source? Als dat wel het geval is, is het een simpel gevalletje van de image paths controleren.

Specs


Verwijderd

Topicstarter
asfaloth_arwen schreef op donderdag 20 november 2008 @ 19:57:
Wat geeft:
code:
1
StrComp(cstr(soortzending),"email")<> 0

en:

[...]
Die functie StrComp ken ik niet, als ik die code erin zit wordt het plaatje wel getoond, veel dank


Mag ik hier nog een vraag over stellen? Ik kijk even naar hoe die functie werkt, als de uitkomst 0 is dan zouden die 2 strings aan elkaar gelijk moeten zijn toch? Waarom kies jij voor <>0 ? op die manier gaat die voorwaarde altijd op.

[ Voor 28% gewijzigd door Verwijderd op 20-11-2008 20:12 ]


Verwijderd

Topicstarter
Ik heb nog eens even goed gekeken, toch zijn de waarden kennelijk niet gelijk:

als ik deze code gebruik wordt het plaatje getoond:
code:
1
2
3
if  StrComp(cstr(soortzending),"email",1)= -1  then
                            response.write "<img src='./images/email.jpg' alt='E-mail zending'>"
                        end if


Als ik als voorwaarde gebruik = 0 dan wordt niks getoond, terwijl het tekstveld echt de waarde "email" bevat

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
1) ltrim + rtrim = trim ;) Dus ltrim(rtrim(foo)) kun je vervangen door (foo)
2) Je compared een field met een string. Als je de fieldvalue wil comparen dan gebruik je rs.fields("blah").value en dus niet rs("blah") welke het field object is waarbij je a) al uitgaat dat rs() default naar het default property .fields en b) dat dat field dan weer default naar .value. Toevallig zorgen denk ik de ltrim en rtrim er uiteindelijk ook wel voor dat de default property wordt gebruikt en dus uiteindelijk de field value, maar als je het zeker wil weten dan output je gewoon eens zo: response.write ltrim(rtrim(rs("foo"))). Vette kans dat je dan "Object" ofzo ziet i.p.v. de inhoud ervan die je zoekt. Kwestie van Debuggen.
3) Het werkt wel met StrComp omdat die de default property zal aanspreken; in dit geval .value. Netter is het om niet af te gaan op default properties maar ze expliciet aan te geven.
4) StrComp kun je vbTextCompare meegeven zodat 'ie niet case-sensitive is. En Strcomp geeft 0 bij gelijke strings, -1 als links < rechts en 1 als links > rechts. Documentatie lezen is een must bij programmeren. "Uitvogelen" wat iets doet is zonde van je tijd.

5) Ik zou zoiets doen:
Visual Basic:
1
2
3
4
5
6
7
8
9
Select case lcase(trim(rs.fields("soortzending").value))
  case "email"
    response.write....
  case "post"
    response.write....
  case "blah"
    response.write....
  ...
end select

[ Voor 77% gewijzigd door RobIII op 20-11-2008 21:34 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
RobIII schreef op donderdag 20 november 2008 @ 21:23:
1) ltrim + rtrim = trim ;) Dus ltrim(rtrim(foo)) kun je vervangen door (foo)
2) Je compared een field met een string. Als je de fieldvalue wil comparen dan gebruik je rs.fields("blah").value en dus niet rs("blah") welke het field object is waarbij je a) al uitgaat dat rs() default naar het default property .fields en b) dat dat field dan weer default naar .value. Toevallig zorgen denk ik de ltrim en rtrim er uiteindelijk ook wel voor dat de default property wordt gebruikt en dus uiteindelijk de field value, maar als je het zeker wil weten dan output je gewoon eens zo: response.write ltrim(rtrim(rs("foo"))). Vette kans dat je dan "Object" ofzo ziet i.p.v. de inhoud ervan die je zoekt. Kwestie van Debuggen.
3) Het werkt wel met StrComp omdat die de default property zal aanspreken; in dit geval .value. Netter is het om niet af te gaan op default properties maar ze expliciet aan te geven.
4) StrComp kun je vbTextCompare meegeven zodat 'ie niet case-sensitive is. En Strcomp geeft 0 bij gelijke strings, -1 als links < rechts en 1 als links > rechts. Documentatie lezen is een must bij programmeren. "Uitvogelen" wat iets doet is zonde van je tijd.

5) Ik zou zoiets doen:
Visual Basic:
1
2
3
4
5
6
7
8
9
Select case lcase(trim(rs.fields("soortzending").value))
  case "email"
    response.write....
  case "post"
    response.write....
  case "blah"
    response.write....
  ...
end select
Allen heel veel dank en RobIII veel dank ook voor je uitleg (die werkt ;) )
Pagina: 1