PDA

View Full Version : asp help!!!..


icecarim
01-12-2010, 06:41 PM
i have a code that is like a grading sheet. it accepts midterm grade and finals and remarks and final grades. my problem is that to show the content of my grading form i uses a loop so the text field in my grading form that accepts my grades and remarks has 1 name, then i use a loop to save them, the problem is that everytime i enter the same value in my textbox they appear as a single value..and when i use the SPlit() function it produces only 1 value when i put same values on my textbox... here is my code i hope u can help me.,,. tnx in advance...grading form<!--#INCLUDE VIRTUAL="connection.asp.asp" -->
<%
subject = request.Form("subject")
DIM mySQL
mySQL = "SELECT * FROM tblstudentsubject WHERE INSTR(tblstudentsubject.sUbcOde,'"& subject &"')"
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open mySQL, adoConn
%>

<HTML>
<HEAD>
<Title>display.asp</Title>
<META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<META name="Generator" content="Asp Studio 1.0">
</HEAD>

<BODY>

<form name="gradeform" method="post" action="addstudgrade.asp">
<table>
<tr><th><input type="hidden" name="subcode" value="<%Response.Write subject %>">Student ID number</th><th>Student Name</th><th>Midterm</th><th>Finals</th><th>Final Grade</th><th>Remarks</th></tr>
<% DO WHILE NOT objRS.EOF %>
<tr><td></td></tr>

<tr><td align="center"><% Response.Write objRS("studIDnUm") %><input type="hidden" name="idnum" value="<%Response.Write objRS("studIDnUm") %>"><input type="hidden" name="yrlvl" value="<%Response.Write objRS("yRLvl") %>"><input type="hidden" name="sec" value="<%Response.Write objRS("sEctioN") %>"></td>
<td align="center"><% Response.Write objRS("LnAme")&","&objRS("FnAme")&" "&objRS("MI") %><input type="hidden" name="sname" value="<% Response.Write objRS("LnAme")&","&objRS("FnAme")&" "&objRS("MI") %>"></td>
<td align="center"><input type="text" name="midterm" size="3" maxlength="3"></td><td align="center"><input type="text" name="finals" size="3" maxlength="3"></td><td align="center"><input type="text" name="finalG" size="3" maxlength="3"></td>
<td align="center"><select name="remarks">
<option>Remarks</option>
<option value="passed">Passed</option>
<option value="failed">Failed</option>
<option value="inc">Incomplete</option>
<option value="drop">Dropped</option></select></td></tr>

<tr><td colspan="6"><hr></td></tr>
<%
objRS.MoveNext
Loop
%>
<tr><td colspan="6"><input type="submit" value="submit"></td></tr>
</table>
</form>


</BODY>

</HTML>
<%
objRS.Close
Set objRS = Nothing
adoConn.Close
Set adoConn = Nothing
%>
to add my values in my database<!-- #INCLUDE file="connection.asp.asp" -->

<%
idnum = request.Form("idnum")
yrlvl = request.Form("yrlvl")
sec = request.Form("sec")
sname = request.Form("sname")
midterm = request.Form("midterm")
finals = request.Form("finals")
finalG = request.Form ("finalG")
remarks = request.Form ("remarks")
subcode = request.Form ("subcode")
dim snameArray
snameArray = Split(sname,", ")
dim idnumArray
idnumArray = Split(idnum,", ")
dim yrlvlArray
yrlvlArray = Split(yrlvl,", ")
dim secArray
secArray = Split(sec,", ")
dim midtermArray
midtermArray = Split(midterm,", ")
dim finalsArray
finalsArray = Split(finals,", ")
dim finalGArray
finalGArray = Split(finalG,", ")
dim remarksArray
remarksArray = Split(remarks,", ")
dim objRS
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Source = "tblstudgrades"
objRS.ActiveConnection = adoConn
objRS.CursorType= 2
objRS.LockType= 3
objRS.Open
do until ctr = ubound(idnumArray) + 1
objRS.AddNew
objRS("studentID") = idnumArray(ctr)
objRS("studname") = snameArray(ctr)
objRS("studyr") = yrlvl
objRS("studsec") = secArray(ctr)
objRS("midterm") = midtermArray(ctr)
objRS("finals") = finalsArray(ctr)
objRS("finalG") = finalGArray(ctr)
objRS("remarks") = remarks
objRS("subcode") = subcode
objRS.Update
ctr = ctr + 1
loop
objRS.Close
Set objRS = Nothing
adoConn.Close
Set adoConn = Nothing
%>
...:confused:

Old Pedant
01-12-2010, 07:19 PM
I think you are making a BIG mistake, using SPLIT like that.

I think you should, instead, assign a number to each form field name.

Something like this:

count = 0
<%
DO WHILE NOT objRS.EOF
count = count + 1
%>
<input type="hidden" name="idnum_<%=count%>" value="<%= objRS("studIDnUm") %>">
<input type="hidden" name="yrlvl_<%=count%>" value="<%= objRS("yRLvl") %>">
<input type="hidden" name="sec_<%=count%>" value="<%= objRS("sEctioN") %>">
... etc ...
<input type="text" name="midterm_<%=count%>" size="3" maxlength="3">
<%
objRS.MoveNext
Loop
%>
<input type="hidden" name="studentCount" value="<%=count%>" />

Then your form processing code does this:

<%
For count = 1 To CINT(Request("studentCount"))
idnum = Request("idnum_" & count)
yrlvl = Request("yrlvl_" & count)
...
midterm = Request("midterm_" & count)
...
... SQL ...
...
Next
%>

You *MUST* do it this way if you ever use checkboxes, because an unchecked checkbox just *disappears* in the Request("checkboxname") code, so you'd never be able to "line up" the rows properly. So why not just always do it this way and avoid confusion?

icecarim
01-17-2010, 04:00 PM
Old Pedant, thanks!!! got it working!!! now i know my mistakes!! thanks!!!:thumbsup: