Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 410
  • Last Modified:

classic aspvb syntax question

Hi,

I have an old asp site that I need to modify. We have a menu item that shows under a certain condition with a usertype field:

  <% IF Session("UserType") = 1 OR Session("UserType") = 7 THEN %> 

Open in new window


and then we show the menu item.

We recently modified a database field so that a single user record can be assigned multiple types in a comma delimited list. So instead of UserType=1, for our condition, we need to check if Session("UserType") contains 1 in a comma delimited list.

assuming users will have values like 1,7,8 or 1,3,7 how can I scan and confirm a "contains" condition in asp vb?

Thank you

Bill
0
billium99
Asked:
billium99
  • 3
  • 2
  • 2
  • +1
3 Solutions
 
GaryCommented:
Assuming no number bigger than 9 then you can do
instr(Session("UserType"),"1")

If greater than 9 then
instr(","&Session("UserType")&",",",1,")
0
 
Scott Fell, EE MVEDeveloper & EE ModeratorCommented:
<%
test="1,3,7,9,10" 

if checkIT(test)=1 then
%>
<div class="nav">Nav bar</div>
<%
end if
%>


<%
' functions are typically at the top or bottom of your page.
function checkIT(user_type)
     checkIT=0
     arrUsertype=split(user_type,",")
     for each number in arrUsertype
          if cstr(number)="1" then
               checkIT=1
         end if
    next
end function

%>

Open in new window

0
 
Rainer JeschorCommented:
Hi,
I would go the route with padas solution BUT would extend it a little bit - just to pass the check parameter as well:
<%
test="1,3,7,9,10" 

if checkIT(test,"1") OR checkIT(test,"7") then
%>
<div class="nav">Nav bar</div>
<%
end if
%>


<%
' functions are typically at the top or bottom of your page.
function checkIT(user_type,valueToCheck)
     checkIT=false
     arrUsertype=split(user_type,",")
     for each number in arrUsertype
          if cstr(number)=cstr(valueToCheck) then
               checkIT=true
         end if
    next
end function

%>

Open in new window


HTH
Rainer
0
Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
billium99Author Commented:
Thanks All - now Gary's solution is clearly the simplest, and right now all values are 1 - 8, but just to clarify, the second example assumes the number MUST be greater than 9?

So truly if we get to 10 user types, we need to use Pradas or Rainer's solutions?
0
 
Rainer JeschorCommented:
Hi,
Gary`s is the quickest one - but hard to read and you have always to add the "," before and after your session variable. This will work for any number but it could be not as error save as Padas/my solution due to the extras you have to add.

Padas solution is the right one in terms of best practices as it creates the array with the distinct values and then runs the compare.

My extension to Padas solution just make it usable for any check you want to run - check for 5 or 10 or ...

Just my 2ct
Rainer
0
 
billium99Author Commented:
OK thx - I have another question related to this that I will post right now, to not abuse my points. =)
0
 
billium99Author Commented:
Thanks for the help
0
 
GaryCommented:
Don't actually see a problem with adding a comma, it just makes the number distinct to do an instr check
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 3
  • 2
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now