Solved

classic aspvb syntax question

Posted on 2013-11-09
8
400 Views
Last Modified: 2013-11-10
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
Comment
Question by:billium99
  • 3
  • 2
  • 2
  • +1
8 Comments
 
LVL 58

Accepted Solution

by:
Gary earned 200 total points
ID: 39636441
Assuming no number bigger than 9 then you can do
instr(Session("UserType"),"1")

If greater than 9 then
instr(","&Session("UserType")&",",",1,")
0
 
LVL 52

Assisted Solution

by:Scott Fell, EE MVE
Scott Fell,  EE MVE earned 150 total points
ID: 39636455
<%
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
 
LVL 44

Assisted Solution

by:Rainer Jeschor
Rainer Jeschor earned 150 total points
ID: 39636646
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: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

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.

 
LVL 1

Author Comment

by:billium99
ID: 39636894
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
 
LVL 44

Expert Comment

by:Rainer Jeschor
ID: 39636918
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
 
LVL 1

Author Comment

by:billium99
ID: 39636926
OK thx - I have another question related to this that I will post right now, to not abuse my points. =)
0
 
LVL 1

Author Closing Comment

by:billium99
ID: 39636927
Thanks for the help
0
 
LVL 58

Expert Comment

by:Gary
ID: 39637063
Don't actually see a problem with adding a comma, it just makes the number distinct to do an instr check
0

Featured Post

Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

I would like to start this tip/trick by saying Thank You, to all who said that this could not be done, as it forced me to make sure that it could be accomplished. :) To start, I want to make sure everyone understands the importance of utilizing p…
When you see single cell contains number and text, and you have to get any date out of it seems like cracking our heads.
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

839 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question