Mixing asp and JavaScript

I have a procedure that populates an event calendar.  Below is the portion of code I am having trouble with:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=d:\myspace\ftz12\tn86721\cashcom.ca\db\appointment_dates.mdb")
sql = "select Name, ApptDate from apptdates where Name = '" & strName & "' order by Name, ApptDate"
Set RS = Conn.Execute(sql)
Do While NOT RS.EOF
intMonth = RS("ApptDate").Value
intMonth = Left(intMonth,2)
intDay = RS("ApptDate").Value
intDay = Mid(intDay,4,2)
Session("Day") = intDay
Session("Month") = intMonth
Session("Event") = Session("Day") & "," & Session("Month") & "," & Session("Day") & "," & Session("Month") & ","
%>
<script type="text/javascript">
var months = ["January","February","March","April","May","June","July","August","September","October","November","December"];
var daycounts = [31,28,31,30,31,30,31,31,30,31,30,31];
var firstdays = [2,5,5,1,3,6,1,4,0,2,5,0];
var appointments = [
[<%=Session("Event")%>"Appointment"]
];
</script>
<%
RS.MoveNext
loop
%>
derossAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

fritz_the_blankCommented:
What is the problem that you are having?
0
derossAuthor Commented:
The sample event calendar code has the following for var appointments:

var appointments = [
[15,3,13,4,"Holiday in New Zealand"],
[12,06,12,06,"my birthday"],
[28,8,2,9,"Trip to Paris"],
[22,11,22,11,"Party with colleagues"],
[20,12,30,12,"Christmas with family"]
];

By using my session variable and loop procedure, I am only getting the last record from the database.
0
fritz_the_blankCommented:
I think that I am still missing something. If you do not include your session variable information, do you get all of your records?

FtB
0
Exploring SQL Server 2016: Fundamentals

Learn the fundamentals of Microsoft SQL Server, a relational database management system that stores and retrieves data when requested by other software applications.

derossAuthor Commented:
I think the problem is that as the database loops, the var appointments variable gets changed to the currenct record until it reaches the end at which time the var appointments variable is set to the last record.  As you can see from the sample above, there are five records that were manually typed in.  What I need is, instead of the var appointments variable being replaced for each new record, I need to append the var appointment variable with each new record.
0
abuimadCommented:
try this:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=d:\myspace\ftz12\tn86721\cashcom.ca\db\appointment_dates.mdb")
sql = "select Name, ApptDate from apptdates where Name = '" & strName & "' order by Name, ApptDate"
Set RS = Conn.Execute(sql)
%>
<script type="text/javascript">
      var months = ["January","February","March","April","May","June","July","August","September","October","November","December"];
      var daycounts = [31,28,31,30,31,30,31,31,30,31,30,31];
      var firstdays = [2,5,5,1,3,6,1,4,0,2,5,0];
      var appointments = new Array();
<%
Do While NOT RS.EOF
      intMonth = RS("ApptDate").Value
      intMonth = Left(intMonth,2)
      intDay = RS("ApptDate").Value
      intDay = Mid(intDay,4,2)
      Session("Day") = intDay
      Session("Month") = intMonth
      Session("Event") = Session("Day") & "," & Session("Month") & "," & Session("Day") & "," & Session("Month") & ","
%>
      appointments[appointments.length] = new Array( <%=Session("Event")%>"Appointment" );
<%
RS.MoveNext
loop
%>
</script>

Hope it helps..
0
ap_sajithCommented:
Try this..... You will have to append the values to the session variable as shown below

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=d:\myspace\ftz12\tn86721\cashcom.ca\db\appointment_dates.mdb")
sql = "select Name, ApptDate from apptdates where Name = '" & strName & "' order by Name, ApptDate"
Set RS = Conn.Execute(sql)
Do While NOT RS.EOF
intMonth = RS("ApptDate").Value
intMonth = Left(intMonth,2)
intDay = RS("ApptDate").Value
intDay = Mid(intDay,4,2)
Session("Day") = intDay
Session("Month") = intMonth
If Session("Event")="" Then
Session("Event") = "[" & Session("Day") & "," & Session("Month") & "," & Session("Day") & "," & Session("Month") & "]"
Else
Session("Event") = Session("Event") & ",[" & Session("Day") & "," & Session("Month") & "," & Session("Day") & "," & Session("Month") & "]"
End If
%>
<script type="text/javascript">
var months = ["January","February","March","April","May","June","July","August","September","October","November","December"];
var daycounts = [31,28,31,30,31,30,31,31,30,31,30,31];
var firstdays = [2,5,5,1,3,6,1,4,0,2,5,0];
var appointments = [
<%=Session("Event")%>"Appointment"
];
</script>
<%
RS.MoveNext
loop
%>

Hope you get the idea..
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
etainCommented:
1. Why need to store in Session when code is in the Same page ?
2. From what u give, is this line correct,   the first and second Date the always the Same ?
   Session("Day") & "," & Session("Month") & "," & Session("Day") & "," & Session("Month") & ","

here is my Version
 
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=d:\myspace\ftz12\tn86721\cashcom.ca\db\appointment_dates.mdb")
sql = "select Name, ApptDate from apptdates where Name = '" & strName & "' order by Name, ApptDate"
Set RS = Server.CreateObject("ADODB.Recordset")
RS.Open "sql", DBconn, 2, 2
if Not DBrs.EOF Then                   
      Record = RS.GetRows()      
End if
RS.Close
Conn.Close
%>

<script type="text/javascript">
var months = ["January","February","March","April","May","June","July","August","September","October","November","December"];
var daycounts = [31,28,31,30,31,30,31,31,30,31,30,31];
var firstdays = [2,5,5,1,3,6,1,4,0,2,5,0];
var appointments = new Array();
<%
if IsArray(Record) then
      for i=0 to UBound(Record,2)
            intMonth = Left( Record(1,i),2)
            intDay = Mid(Record(1,i),4,2)
                   event =  intDay & "," & intMonth & "," & intDay & "," & intMonth & ","
                   Response.write "appointments[appointments.length]  = new Array( " & even &"'Appointment' );"
      next
end if
%>
</script>
0
xiong8086Commented:
i think your code sequences must have some change, and in your code [<%=Session("Event")%>"Appointment"], the word "Appointment" is just a text, or you mean RS("appointment"),  you see, you define so many session variables in the do while loop, the session vaiables will be defined as many times as your recordset recordcount, no meaning for using session... please check your sessions variables definitions carefuly
0
xiong8086Commented:
after that, i think you can define your new array appointment size with the property recordset.recordcount.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
ASP

From novice to tech pro — start learning today.