Select (dropdown) list and set value based on table column

Discussion in 'ASP General' started by mcauliffe, Jan 23, 2007.

  1. mcauliffe

    mcauliffe Guest

    I have an old application ( pre-VB5) that I need to add a select/option list
    to. This is an edit program so the values for the form will be retrieved
    from a database. How do I set the value of the dropdown with the value from
    the database. The value in the database is either new, trial, maint.,
    employee, beta, or null. I need to set the dropdrown to one of these values.

    An example of the select;
    <td>
    <select name="ordReason">
    <option></option>
    <option value="New">New</option>
    <option value="Maint.">Maint.</option>
    <option value="Trial">Trial</option>
    <option value="Employee">Employee</option>
    <option value="Beta">Beta</option>
    </select>
    </td>
    mcauliffe, Jan 23, 2007
    #1
    1. Advertising

  2. mcauliffe wrote:
    > I have an old application ( pre-VB5) that I need to add a
    > select/option list to. This is an edit program so the values for the
    > form will be retrieved from a database. How do I set the value of
    > the dropdown with the value from the database. The value in the
    > database is either new, trial, maint., employee, beta, or null. I
    > need to set the dropdrown to one of these values.
    >
    > An example of the select;
    > <td>
    > <select name="ordReason">
    > <option></option>
    > <option value="New">New</option>
    > <option value="Maint.">Maint.</option>
    > <option value="Trial">Trial</option>
    > <option value="Employee">Employee</option>
    > <option value="Beta">Beta</option>
    > </select>
    > </td>


    When adding the options, add the word " checked" to the option tag of
    the one you want selected.

    --
    Microsoft MVP -- ASP/ASP.NET
    Please reply to the newsgroup. The email account listed in my From
    header is my spam trap, so I don't check it very often. You will get a
    quicker response by posting to the newsgroup.
    Bob Barrows [MVP], Jan 23, 2007
    #2
    1. Advertising

  3. mcauliffe wrote:
    > Thank you for the reply.
    >
    > I don't know which one will bew selected until I retrieved a record
    > from the database. The user is editing a existing record and may
    > changed the value of the dropdown. I must first indicate the value
    > is the database.
    >
    > An example: the database for the column is equal to "Employee" How
    > do I indicate when I display the ASP page on the form that the
    > existing value of ordReason is Employee?
    >


    Concatenate "checked" into the option value text when building the
    option string.

    You are building these options by looping through some records in a
    recordset, correct? When you get to the one that contains "Employee",
    concatenate "selected" (not "checked" - oops) into the option tag.
    Obviously, this means you need to know/retrieve the selected value
    before building the option list.

    Here's a simple example using an array instead of a recordset (since i
    don't have access to your database, of course):

    <%
    dim options, ar, selectedvalue, val
    selectedvalue=Request.Form("sel")
    ar=array("New","Maint.","Trial","Employee","Beta")
    for each val in ar
    options=options & "<option value=""" & val & """"
    if val=selectedvalue then options=options & " selected"
    options=options & ">" & val
    next
    %>
    <html><body><form method="post">
    <select name="sel">
    <%=options%>
    </select><br>
    <input type="submit">
    </form></body></html>

    next


    --
    Microsoft MVP -- ASP/ASP.NET
    Please reply to the newsgroup. The email account listed in my From
    header is my spam trap, so I don't check it very often. You will get a
    quicker response by posting to the newsgroup.
    Bob Barrows [MVP], Jan 23, 2007
    #3
  4. mcauliffe

    Michael Guest

    I can recommend my procedure for building select box.
    parameter "arr" is 2 dimensional array taken from query and based on 2
    fields; id and name, using method getrows
    parameter "id" is value that should be checked

    Sub FillSelectBox(arr, selectname, action, size, id)
    Dim Sel
    Response.Write "<select name=" & selectname & " onchange=" & action
    & " style='width:" & size & "px;'>"
    For i=0 to Ubound(arr,2)
    If cint(id)=cint(arr(0,i)) Then
    Sel=" selected "
    Else
    Sel=" "
    End If
    Response.Write "<option" & Sel & " value=" & arr(0,i) & ">"
    & arr(1,i) & "</option>"
    Next
    Response.write "</select>"
    End Sub


    example of calling
    <%
    sql="Select CustomerId, CustomerName from Customers order by CustomerName"
    call getfromdatabase(sql, rs) ' your own function to get query
    If Not rs.eof Then
    array=rs.GetRows
    End If
    call FillSelectBox(array, "Types", "changesomething(" & rs("CustomerId") &
    ")", 20, "Smith")
    %>


    Michael
    Michael, Jan 24, 2007
    #4
  5. mcauliffe

    Evertjan. Guest

    =?Utf-8?B?bWNhdWxpZmZl?= wrote on 24 jan 2007 in
    microsoft.public.inetserver.asp.general:

    > As a newbie, needed something that I would undetstand. Your response
    > help me. I did a Select Case and resolved.
    >
    > This is a snipet of the code
    > Select Case rsorder_header.fields.getValue("order_reason")
    > Case ""
    > Response.Write "<td width=100>" & _
    > "<select name='ordReason'>" & _
    > "<option Selected></option>" & _
    > "<option value='New'>New</option>" & _
    > "<option value='Maint.'>Maint.</option>" & _
    > "<option value='Trial'>Trial</option>" & _
    > "<option Value='Employee'>Employee</option>" & _
    > "<option value='Beta'>Beta</option></select></td>"
    > Case "New"
    > Response.Write "<td width=100>" & _
    > "<select name='ordReason'>" & _
    > "<option></option>" & _
    > "<option value='New' Selected>New</option>" & _
    > "<option value='Maint.'>Maint.</option>" & _
    > "<option value='Trial'>Trial</option>" & _
    > "<option Value='Employee'>Employee</option>" & _
    > "<option value='Beta'>Beta</option></select></td>"
    > Case "Maint."
    > Response.Write "<td width=100>" & _
    > "<select name='ordReason'>" & _
    > "<option></option>" & _
    > "<option value='New'>New</option>" & _
    > "<option value='Maint.' Selected>Maint.</option>"
    > & _ "<option value='Trial'>Trial</option>" & _
    > "<option Value='Employee'>Employee</option>" & _
    > "<option value='Beta'>Beta</option></select></td>"
    >


    Why not use ASP-VBS to optimize your code:


    <%
    Function writeOption(t)
    If rsn = t Then s = "Selected" Else s = ""
    Response.Write "<option value='"&t&"'"&s&">"&t&"</option>" & VbCrLf
    End Function

    rsn = rsorder_header.fields.getValue("order_reason")
    %>
    <td width=100>
    <select name='ordReason'>
    <%
    writeOption("")
    writeOption("New")
    writeOption("Maint.")
    writeOption("Trial")
    writeOption("Employee")
    writeOption("Beta")
    %>
    </select>
    </td>

    Not tested btw.

    --
    Evertjan.
    The Netherlands.
    (Please change the x'es to dots in my emailaddress)
    Evertjan., Jan 24, 2007
    #5
  6. mcauliffe

    Billy Guest

    Thanks all. Commenting out the section that produced the headers
    worked.

    On Jan 24, 10:22 am, "Evertjan." <>
    wrote:
    > =?Utf-8?B?bWNhdWxpZmZl?= wrote on 24 jan 2007 in
    > microsoft.public.inetserver.asp.general:
    >
    >
    >
    >
    >
    > > As a newbie, needed something that I would undetstand. Your response
    > > help me. I did a Select Case and resolved.

    >
    > > This is a snipet of the code
    > > Select Case rsorder_header.fields.getValue("order_reason")
    > > Case ""
    > > Response.Write "<td width=100>" & _
    > > "<select name='ordReason'>" & _
    > > "<option Selected></option>" & _
    > > "<option value='New'>New</option>" & _
    > > "<option value='Maint.'>Maint.</option>" & _
    > > "<option value='Trial'>Trial</option>" & _
    > > "<option Value='Employee'>Employee</option>" & _
    > > "<option value='Beta'>Beta</option></select></td>"
    > > Case "New"
    > > Response.Write "<td width=100>" & _
    > > "<select name='ordReason'>" & _
    > > "<option></option>" & _
    > > "<option value='New' Selected>New</option>" & _
    > > "<option value='Maint.'>Maint.</option>" & _
    > > "<option value='Trial'>Trial</option>" & _
    > > "<option Value='Employee'>Employee</option>" & _
    > > "<option value='Beta'>Beta</option></select></td>"
    > > Case "Maint."
    > > Response.Write "<td width=100>" & _
    > > "<select name='ordReason'>" & _
    > > "<option></option>" & _
    > > "<option value='New'>New</option>" & _
    > > "<option value='Maint.' Selected>Maint.</option>"
    > > & _ "<option value='Trial'>Trial</option>" & _
    > > "<option Value='Employee'>Employee</option>" & _
    > > "<option value='Beta'>Beta</option></select></td>"Why not use ASP-VBS to optimize your code:

    >
    > <%
    > Function writeOption(t)
    > If rsn = t Then s = "Selected" Else s = ""
    > Response.Write "<option value='"&t&"'"&s&">"&t&"</option>" & VbCrLf
    > End Function
    >
    > rsn = rsorder_header.fields.getValue("order_reason")
    > %>
    > <td width=100>
    > <select name='ordReason'>
    > <%
    > writeOption("")
    > writeOption("New")
    > writeOption("Maint.")
    > writeOption("Trial")
    > writeOption("Employee")
    > writeOption("Beta")
    > %>
    > </select>
    > </td>
    >
    > Not tested btw.
    >
    > --
    > Evertjan.
    > The Netherlands.
    > (Please change the x'es to dots in my emailaddress)- Hide quoted text -- Show quoted text -
    Billy, Jan 26, 2007
    #6
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. vishnu
    Replies:
    1
    Views:
    1,202
    Patrick.O.Ige
    Mar 25, 2006
  2. Greg Smith
    Replies:
    0
    Views:
    539
    Greg Smith
    Apr 12, 2007
  3. Replies:
    2
    Views:
    432
  4. Bobby Edward
    Replies:
    0
    Views:
    356
    Bobby Edward
    Oct 9, 2008
  5. Greg Smith
    Replies:
    0
    Views:
    158
    Greg Smith
    Apr 12, 2007
Loading...

Share This Page