Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 11 of 11
  1. #1
    New Coder
    Join Date
    Jul 2008
    Posts
    30
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Send value from Drop Down Selection

    I have a Drop Down list populated from an SQL DB and then a submit button to send the selection as a URL Parameter to get details on the next ASP page. I need to be able to send an ID with that in the URL parameter based on the selection I made. I have tried using a hidden field but the ID that gets sent is just the first one in the list and I need it to be the ID in the SQL table of what was selected in the drop down.

    ANY help will be appreciated.

    Thanks
    Chris

  • #2
    Supreme Master coder! Old Pedant's Avatar
    Join Date
    Feb 2009
    Posts
    25,506
    Thanks
    77
    Thanked 4,378 Times in 4,343 Posts
    Show your code as you have it now.

    Especially how you populate the <select>.

    It's really hard to guess what you need from just that description. Might be trivial answer; might be tough.
    An optimist sees the glass as half full.
    A pessimist sees the glass as half empty.
    A realist drinks it no matter how much there is.

  • #3
    New Coder
    Join Date
    Jul 2008
    Posts
    30
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Thanks for the reply.....I realize this is crappy dreamweaver code but it's the only way I know how to do this stuff sorry.....

    Landname is the dropdown field I have and I select one of those and then click submit to get the detail for that Landname. I need to send over the ID that's in the same table for that selection in the URL Parameter on the detail page.

    Thanks

    Code:
    <%@LANGUAGE="VBSCRIPT"%>
    <!--#include file="Connections/Landmarks.asp" -->
    <%
    Dim RSLandmarks
    Dim RSLandmarks_cmd
    Dim RSLandmarks_numRows
    
    Set RSLandmarks_cmd = Server.CreateObject ("ADODB.Command")
    RSLandmarks_cmd.ActiveConnection = MM_Landmarks_STRING
    RSLandmarks_cmd.CommandText = "SELECT * FROM dbo.tblLandmark ORDER BY LandName ASC" 
    RSLandmarks_cmd.Prepared = true
    
    Set RSLandmarks = RSLandmarks_cmd.Execute
    RSLandmarks_numRows = 0
    %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    <style type="text/css">
    body,td,th {
    	color: #0FF;
    }
    body {
    	background-color: #000;
    }
    .Fonts {
    	font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
    }
    .Fonts2 {
    	color: #FFF;
    }
    </style>
    </head>
    
    <body class="Fonts">
    <h2>Landmark Search
    </h2>
    <p class="Fonts2">Landmark Name:</p>
    <form id="form1" name="form1" method="get" action="LandmarkInfo.asp">
      <p>
        <label for="Landname"></label>
        <select name="Landname" id="Landname">
          <option value=""></option>
          <%
    While (NOT RSLandmarks.EOF)
    %>
          <option value="<%=(RSLandmarks.Fields.Item("LandName").Value)%>"><%=(RSLandmarks.Fields.Item("LandName").Value)%></option>
          <%
      RSLandmarks.MoveNext()
    Wend
    If (RSLandmarks.CursorType > 0) Then
      RSLandmarks.MoveFirst
    Else
      RSLandmarks.Requery
    End If
    %>
        </select>
      </p>
      <p>
        <input type="submit" />
        <input type="reset" name="Reset" id="Reset" value="Reset" />
      </p>
    </form>
    </body>
    </html>
    <%
    RSLandmarks.Close()
    Set RSLandmarks = Nothing
    %>
    Last edited by stanleyc; 03-14-2013 at 01:30 PM.

  • #4
    Supreme Master coder! Old Pedant's Avatar
    Join Date
    Feb 2009
    Posts
    25,506
    Thanks
    77
    Thanked 4,378 Times in 4,343 Posts
    Well, you didn't say what the name of your "ID" field is, in the DB table.

    So I have just called it ID. If it is something else, just change then names as shown in red.
    Code:
    <%@LANGUAGE="VBSCRIPT"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Search for Landmarks</title>
    <style type="text/css">
    body,td,th {
    	color: #0FF;
    }
    body {
    	background-color: #000;
    }
    .Fonts {
    	font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
    }
    .Fonts2 {
    	color: #FFF;
    }
    </style>
    </head>
    
    <body class="Fonts">
    <h2>Landmark Search
    </h2>
    <p class="Fonts2">Landmark Name:</p>
    <form name="form1" method="get" action="LandmarkInfo.asp">
      <p>
        <select name="Landname">
          <option value="">--choose one--</option>
    <%
    <!--#include file="Connections/Landmarks.asp" -->
    <%
    Set conn = Server.CreateObject ("ADODB.Connection")
    conn.Open MM_Landmarks_STRING
    SQL = "SELECT ID, LandName FROM dbo.tblLandmark ORDER BY LandName ASC" 
    
    Set RS = conn.Execute( SQL )
    
    Do Until RS.EOF
        id = RS("ID")
        name = RS("LandName")
    %>
          <option value="<%=id & "$$" & name%>"><%=name%></option>
    <%
        RS.MoveNext()
    Loop
    RS.Close
    Conn.Close
    %>
        </select>
      </p>
      <p>
        <input type="submit" />
        <input type="reset" name="Reset" id="Reset" value="Reset" />
      </p>
    </form>
    </body>
    </html>
    Now, that means that when this page is submitted to your "LandmarkInfo.asp" page, you will be getting something like
    Code:
        371$$Washington Monument
    when you use code such as
    Code:
        landmark = Request.QueryString("landname")
    So you will want to separate the ID from the name using code something like this:
    Code:
        parts = Split( Trim( Request("landname") ), "$$" )
        id = CLNG(parts(0))
        landmarke = parts(1)
    An optimist sees the glass as half full.
    A pessimist sees the glass as half empty.
    A realist drinks it no matter how much there is.

  • #5
    New Coder
    Join Date
    Jul 2008
    Posts
    30
    Thanks
    0
    Thanked 0 Times in 0 Posts
    OK, I have gotten the data I need in the string but I can't get it to show properly in the link. I didn't understand the last section where I would do that. Here's what I've done, I'm not sure if I'm close to correct since it strays away from your initial code a little bit.

    Here's the current code I have for the string:
    Code:
    <option value="<%=name & id%>"><%=name%></option>
    Which brings me back this:
    LandmarkInfo.asp?Landname=WASHINGTONMONUMENT5864

    All I need is the &ID=5864 to be there and it will be good but I didn't understand where that code went to accomplish that??

    Thanks

    Chris

  • #6
    Supreme Master coder! Old Pedant's Avatar
    Join Date
    Feb 2009
    Posts
    25,506
    Thanks
    77
    Thanked 4,378 Times in 4,343 Posts
    NO NO NO...

    You need SOME KIND OF DELIMITER between the name and ID.

    That's why i *CAREFULLY* used
    Code:
    <option value="<%=id & "$$" & name>"><%=name%></option>
    DO IT LIKE THAT.

    Then show me your code for the LandmarkInfo.asp page, if you didn't understand the rest of what I was saying.
    An optimist sees the glass as half full.
    A pessimist sees the glass as half empty.
    A realist drinks it no matter how much there is.

  • #7
    New Coder
    Join Date
    Jul 2008
    Posts
    30
    Thanks
    0
    Thanked 0 Times in 0 Posts
    OK, I got your initial line back in there.....here's the code for the landmarkinfo.asp:

    Code:
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
    <!--#include file="Connections/Landmarks.asp" -->
    <%
    Dim RSLandmarks__MMColParam
    RSLandmarks__MMColParam = "1"
    If (Request.QueryString("LandName") <> "") Then 
      RSLandmarks__MMColParam = Request.QueryString("LandName")
    End If
    %>
    <%
    Dim RSLandmarks
    Dim RSLandmarks_cmd
    Dim RSLandmarks_numRows
    
    Set RSLandmarks_cmd = Server.CreateObject ("ADODB.Command")
    RSLandmarks_cmd.ActiveConnection = MM_Landmarks_STRING
    RSLandmarks_cmd.CommandText = "SELECT * FROM dbo.tblLandmark WHERE LandName = ?" 
    RSLandmarks_cmd.Prepared = true
    RSLandmarks_cmd.Parameters.Append RSLandmarks_cmd.CreateParameter("param1", 200, 1, 100, RSLandmarks__MMColParam) ' adVarChar
    
    Set RSLandmarks = RSLandmarks_cmd.Execute
    RSLandmarks_numRows = 0
    %>
    <%
    Dim RSLandContacts__MMColParam
    RSLandContacts__MMColParam = "1"
    If (Request.QueryString("IDX") <> "") Then 
      RSLandContacts__MMColParam = Request.QueryString("IDX")
    End If
    %>
    <%
    Dim RSLandContacts
    Dim RSLandContacts_cmd
    Dim RSLandContacts_numRows
    
    Set RSLandContacts_cmd = Server.CreateObject ("ADODB.Command")
    RSLandContacts_cmd.ActiveConnection = MM_Landmarks_STRING
    RSLandContacts_cmd.CommandText = "SELECT * FROM dbo.tblLandmarkContacts WHERE FromID = ?" 
    RSLandContacts_cmd.Prepared = true
    RSLandContacts_cmd.Parameters.Append RSLandContacts_cmd.CreateParameter("param1", 5, 1, -1, RSLandContacts__MMColParam) ' adDouble
    
    Set RSLandContacts = RSLandContacts_cmd.Execute
    RSLandContacts_numRows = 0
    %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    <style type="text/css">
    body {
    	background-color: #000;
    	font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
    	color: #0FF;
    }
    .Fonts {
    	font-size: 24px;
    }
    OtherFonts {
    	color: #FF0;
    }
    .Data2 {
    	font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
    	font-size: 10px;
    	color: #FFF;
    	text-align: left;
    }
    .Fonts2 {
    	color: #FF0;
    	font-size: 12px;
    	font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
    	text-align: left;
    }
    .Fonts2Heading {
    	font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
    	color: #FF0;
    }
    .Fonts table tr td .Fonts2Heading .Fonts2 .Fonts2Heading {
    	font-weight: bold;
    }
    .Data {
    	font-size: 12px;
    	color: #FFF;
    	font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
    	text-align: left;
    }
    .Fonts #form1 table {
    	text-align: left;
    	font-size: 10px;
    }
    </style>
    </head>
    
    <body class="Fonts">
    <table width="100%" border="0">
      <tr>
        <td><div align="center">Landmark Info Display</div></td>
      </tr>
    </table>
    <p>&nbsp;</p>
    <form id="form1" name="form1" method="get" action="">
    <table width="100%" border="0" align="center">
        <tr>
          <td width="64%"><span class="Fonts2"><%=(RSLandmarks.Fields.Item("LandName").Value)%></span></td>
        </tr>
        <tr>
          <td class="Data"><span class="Data2"><%=(RSLandmarks.Fields.Item("StNumber").Value)%> <%=(RSLandmarks.Fields.Item("Dir").Value)%> &nbsp; <%=(RSLandmarks.Fields.Item("Address").Value)%></span></td>
        </tr>
        <tr>
          <td class="Data"><span class="Fonts"><span class="Fonts"><span class="Fonts2">CONTACTS</span></span></span></td>
        </tr>
        <tr>
          <td class="Data"><table width="100%" border="0" align="center">
            <tr>
              <td width="32%"><span class="Data2"><%=(RSLandmarks.Fields.Item("ContactType1").Value)%></span></td>
              <td width="46%"><span class="Data2"><%=(RSLandmarks.Fields.Item("PrimaryContact").Value)%></span></td>
              <td width="22%"><span class="Data2"><%=(RSLandmarks.Fields.Item("PrimaryPhone").Value)%></span></td>
              </tr>
            <tr>
              <td><span class="Data2"><%=(RSLandmarks.Fields.Item("ContactType2").Value)%></span></td>
              <td><span class="Data2"><%=(RSLandmarks.Fields.Item("Contact2").Value)%></span></td>
              <td><span class="Data2"><%=(RSLandmarks.Fields.Item("Phone2").Value)%></span></td>
              </tr>
            <tr>
              <td><%=(RSLandContacts.Fields.Item("ContactType").Value)%></td>
              <td><%=(RSLandContacts.Fields.Item("ConName").Value)%></td>
              <td><%=(RSLandContacts.Fields.Item("Phone").Value)%></td>
            </tr>
          </table></td>
        </tr>
        <tr>
          <td class="Data">&nbsp;</td>
        </tr>
      </table>
    </form>
    <p class="Fonts2">&nbsp;</p>
    <p class="Fonts2">&nbsp;</p>
    </body>
    </html>
    <%
    RSLandmarks.Close()
    Set RSLandmarks = Nothing
    %>
    <%
    RSLandContacts.Close()
    Set RSLandContacts = Nothing
    %>

  • #8
    Supreme Master coder! Old Pedant's Avatar
    Join Date
    Feb 2009
    Posts
    25,506
    Thanks
    77
    Thanked 4,378 Times in 4,343 Posts
    Okay, try this replacement. (I truly *HATE* DreamWeaver code. I cleaned up a lot of it, but not all. But enough to make this somewhat more efficient, at least. The stuff in red is the important part. Other changes not as important, but they will make your code more efficient if you use them.)
    Code:
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
    <!--#include file="Connections/Landmarks.asp" -->
    <%
    ' the code I had suggested:
    parts = Split( Trim( Request("landname") ), "$$" )
    id = CLNG(parts(0))
    landmark = parts(1)
    
    Set conn = Server.CreateObject ("ADODB.Connection")
    conn.Open MM_Landmarks_STRING
    
    SQL1 = "SELECT * FROM dbo.tblLandmark WHERE LandName = '" & Replace(landmark,"'","''") & "'"
    Set RSLandmarks = conn.Execute(SQL1)
    
    SQL2 = "SELECT * FROM dbo.tblLandmarkContacts WHERE FromID = " & id
    Set RSLandContacts = conn.Execute(SQL2)
    
    %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    <style type="text/css">
    body {
    	background-color: #000;
    	font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
    	color: #0FF;
    }
    .Fonts {
    	font-size: 24px;
    }
    OtherFonts {
    	color: #FF0;
    }
    .Data2 {
    	font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
    	font-size: 10px;
    	color: #FFF;
    	text-align: left;
    }
    .Fonts2 {
    	color: #FF0;
    	font-size: 12px;
    	font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
    	text-align: left;
    }
    .Fonts2Heading {
    	font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
    	color: #FF0;
    }
    .Fonts table tr td .Fonts2Heading .Fonts2 .Fonts2Heading {
    	font-weight: bold;
    }
    .Data {
    	font-size: 12px;
    	color: #FFF;
    	font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
    	text-align: left;
    }
    .Fonts #form1 table {
    	text-align: left;
    	font-size: 10px;
    }
    </style>
    </head>
    
    <body class="Fonts">
    <table width="100%" border="0">
      <tr>
        <td><div align="center">Landmark Info Display</div></td>
      </tr>
    </table>
    <p>&nbsp;</p>
    <form id="form1" name="form1" method="get" action="">
    <table width="100%" border="0" align="center">
        <tr>
          <td width="64%"><span class="Fonts2"><%=RSLandmarks("LandName")%></span></td>
        </tr>
        <tr>
          <td class="Data"><span class="Data2"><%=RSLandmarks("StNumber")%> <%=RSLandmarks("Dir")%> &nbsp; <%=RSLandmarks("Address")%></span></td>
        </tr>
        <tr>
          <td class="Data"><span class="Fonts"><span class="Fonts"><span class="Fonts2">CONTACTS</span></span></span></td>
        </tr>
        <tr>
          <td class="Data"><table width="100%" border="0" align="center">
            <tr>
              <td width="32%"><span class="Data2"><%=RSLandmarks("ContactType1")%></span></td>
              <td width="46%"><span class="Data2"><%=RSLandmarks("PrimaryContact")%></span></td>
              <td width="22%"><span class="Data2"><%=RSLandmarks("PrimaryPhone")%></span></td>
              </tr>
            <tr>
              <td><span class="Data2"><%=RSLandmarks("ContactType2")%></span></td>
              <td><span class="Data2"><%=RSLandmarks("Contact2")%></span></td>
              <td><span class="Data2"><%=RSLandmarks("Phone2")%></span></td>
              </tr>
            <tr>
              <td><%=RSLandContacts("ContactType")%></td>
              <td><%=RSLandContacts("ConName")%></td>
              <td><%=RSLandContacts("Phone")%></td>
            </tr>
          </table></td>
        </tr>
        <tr>
          <td class="Data">&nbsp;</td>
        </tr>
      </table>
    </form>
    <p class="Fonts2">&nbsp;</p>
    <p class="Fonts2">&nbsp;</p>
    </body>
    </html>
    <%
    RSLandmarks.Close()
    RSLandContacts.Close()
    conn.Close
    %>
    An optimist sees the glass as half full.
    A pessimist sees the glass as half empty.
    A realist drinks it no matter how much there is.

  • #9
    Supreme Master coder! Old Pedant's Avatar
    Join Date
    Feb 2009
    Posts
    25,506
    Thanks
    77
    Thanked 4,378 Times in 4,343 Posts
    If it's not obvious, all the other changes took the form of replacing this DrunkWalker crap:
    Code:
    <%=(RSLandmarks.Fields.Item("ContactType1").Value)%>
    (and similar code) with just
    Code:
    <%=RSLandmarks("ContactType1")%>
    The DoofusWhacker code works, but all it does is run slower than the more compact form.
    An optimist sees the glass as half full.
    A pessimist sees the glass as half empty.
    A realist drinks it no matter how much there is.

  • #10
    New Coder
    Join Date
    Jul 2008
    Posts
    30
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Works like a charm!!! THANK YOU!!!

    Chris

  • #11
    Supreme Master coder! Old Pedant's Avatar
    Join Date
    Feb 2009
    Posts
    25,506
    Thanks
    77
    Thanked 4,378 Times in 4,343 Posts
    You know, I'm going to guess that there is one more thing you should do.

    Replace this code:
    Code:
            <tr>
              <td><%=RSLandContacts("ContactType")%></td>
              <td><%=RSLandContacts("ConName")%></td>
              <td><%=RSLandContacts("Phone")%></td>
            </tr>
    With this:
    Code:
    <% 
    Do Until RSLandContacts.EOF 
    %>
            <tr>
              <td><%=RSLandContacts("ContactType")%></td>
              <td><%=RSLandContacts("ConName")%></td>
              <td><%=RSLandContacts("Phone")%></td>
            </tr>
    <% 
        RSLandContacts.MoveNext
    Loop
    %>
    I suspect that each landmark *could* have multiple contacts, and this code will then show all contacts.
    An optimist sees the glass as half full.
    A pessimist sees the glass as half empty.
    A realist drinks it no matter how much there is.


  •  

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •