[AccessD] OT-ASP OnChange To Call A Function

Haslett, Andrew andrew.haslett at ilc.gov.au
Fri May 14 19:55:35 CDT 2004


Just as an aside...  This is why ASP.Net is much easier to port from Access
development to web development.

The reason that ASP.Net automatically maintains state and you can program
using very similar techniques to VBA in access.   The 'flow' issue that
exists in most web technologies is pretty much negated.

Cheers,
Andrew

-----Original Message-----
From: DWUTKA at marlow.com [mailto:DWUTKA at marlow.com] 
Sent: Saturday, 15 May 2004 2:01 AM
To: accessd at databaseadvisors.com
Subject: RE: [AccessD] OT-ASP OnChange To Call A Function

Paul, this is a GCE. Gross Conceptual Error. <grin>.  A combobox is
something that your end user sees, on your website.  The ASP code you have
below 'creates' that combo box, and sends it to the user.  Everything you
put in ASP runs on the server, before the user gets the information.
(Technically speaking you can 'push' completed page information out to the
user, as more ASP code is running, but the end result is that the user
doesn't actually get anything you put into ASP).

So, how do you script for what you are doing?  You have to use Client Side
scripting, either VBScript, or JScript (or anything else that floats your
boat).  If you are not actually trying to do anything on the user's browser,
with the selected value, but instead, are just trying to retrieve it when a
user submits the selection, then you would use request.querystring or
request.form on the page that receives the submitted data.

This issue is probably one of the most common stumbling blocks between
switching from VB/Access development, to asp/web development.  In Access/VB,
there is a continuous 'flow' between the FE and BE.  In asp/web development,
you are dealing with a disconnected Front End.  Almost like taking a
snapshot of an Access form, then sending it to your client to fill out.
They fill it out, and send it back.  In the meantime, you just get to
twiddle your thumbs.  This has both advantages and disadvantages.  One
advantage is it immensely increases the number of 'concurrent' users in a
system, because you are truly doing a 'hit and run' on the database.  It
also makes on the fly development a lot easier, because you can change
anything you want, to a live system, and when you make a change, the next
person to get their 'copy' just gets the new version.  The biggest
disadvantage is there is no easy way to tell what a user is actually doing,
until they 'trigger' something that posts information back to you.

To answer your actual question, however, I think you would need this:

<HTML>
<HEAD>
<SCRIPT LANGUAGE="VBSCRIPT">
Function OfficeSelected
	msgbox ddOffices.options(ddOffices.selectedindex).text
End Function
</SCRIPT>
</HEAD>
<%
dim cnn
dim rs
dim strSQL
set cnn=server.createobject("ADODB.Connection")
set rs=server.createobject("ADODB.Recordset")
cnn.Provider="Microsoft.Jet.OLEDB.4.0"
cnn.Open "D:\edlevin.mdb"
strSQL="SELECT Name FROM Stores ORDER BY Name"
rs.Open strSQL, cnn, 1,1
If rs.EOF=False then rs.movefirst
%>
<BODY>
<SELECT Name='ddOffices' OnChange='OfficeSelected()'>
<OPTION Selected=""Selected"" Value="""">Choose....</OPTION>
                                    
<% Do Until rs.EOF=True%>
            <OPTION><%=rs.Fields(0).value%></OPTION>
<%
rs.MoveNext
loop
%>
 </SELECT>
</BODY>
</HTML>

It does what you ask of it.  A couple things to note.  in the function, I am
getting the .text property, instead of .value.  In HTML, an option within a
select object (ie, a line in a combo or listbox) can have a value different
then what is displayed in the box itself.

Drew


-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com]On Behalf Of
paul.hartland at fsmail.net
Sent: Friday, May 14, 2004 10:27 AM
To: accessd
Subject: [AccessD] OT-ASP OnChange To Call A Function


To all,
 
I'm a bit new to ASP/HTML and currently working with dropdown boxes, however
I'm a bit confused on how to pass the selected text to a function.  My code
snippet for the dropdown box and function are below:
 
response.write "<DEFANGED_SELECT Name='ddOffices'
OnChange='OfficeSelected(this.selectedindex.text)'>"
response.write "<DEFANGED_OPTION Selected=""Selected""
Value="""">Choose....</DEFANGED_OPTION>"
                                    
While Not rsData.EOF
            response.write "<DEFANGED_OPTION>" & rsData.Fields("OfficeName")
& "</DEFANGED_OPTION>"
            rsData.MoveNext
Wend
 
<%
            ' Function just to display name of the office selected.
            Function OfficeSelected(strSelectedOffice)
                        response.write strSelectedOffice
            End Function
%>
 
The problem occurs when I select an item from the dropdown box, I get the
following error:
 
this.selectedindex.text Is Null or not an object
 
Can anyone point me in the right direction on what I'm doing wrong.
 
Thanks in advance for any help on this.
 
Paul Hartland

-- 

Whatever you Wanadoo:
http://www.wanadoo.co.uk/time/

This email has been checked for most known viruses - find out more at:
http://www.wanadoo.co.uk/help/id/7098.htm
--
_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com
-- 
_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com

IMPORTANT - PLEASE READ ******************** 
This email and any files transmitted with it are confidential and may 
contain information protected by law from disclosure. 
If you have received this message in error, please notify the sender 
immediately and delete this email from your system. 
No warranty is given that this email or files, if attached to this 
email, are free from computer viruses or other defects. They 
are provided on the basis the user assumes all responsibility for 
loss, damage or consequence resulting directly or indirectly from 
their use, whether caused by the negligence of the sender or not.



More information about the AccessD mailing list