Vedhæft fil
HejEr der nogen rigtig skrappe hoveder der kan hjælpe mig? Jeg har en formular som virker fint, indtil jeg gerne vil have vedhæftet en fil og sendt med. Den sender mailen, men det er en tom mail og der bliver ikke vedhæftet nogen fil, min kode er herunder. Er der nogen der kan gennemskue det?
fil nr. 1
<%@ Language=VBScript %>
<%
Option Explicit ' Alle variable SKAL erklæres
Response.Expires = 0 ' Siden bliver ikke lagt i cache
' Lav et database-connection-objekt
Dim DBConn
Set DBConn = Server.CreateObject("ADODB.Connection")
DBConn.ConnectionTimeout = 5
DBConn.CommandTimeout = 10
' Åbn access filen
Dim strDBSti
strDBSti = Server.MapPath("bestilling.mdb")
DBConn.Open "Provider=Microsoft.Jet.OleDB.4.0;Data Source=" &strDBSti
Function DBExecute(sql)
' Returner resultatet af sql i et recordset
Dim DBCmd
Set DBCmd = Server.CreateObject("ADODB.Command")
DBCmd.CommandTimeout = 10
Dim rsSQL
Set rsSQL = Server.CreateObject("ADODB.Recordset")
rsSQL.CursorLocation = 3
DBCmd.ActiveConnection = DBConn
DBCmd.CommandText = sql
rsSQL.Open DBCmd
DBCmd.ActiveConnection = Nothing
Set DBCmd = Nothing
rsSQL.ActiveConnection = Nothing
Set DBExecute = rsSQL
Set rsSQL = Nothing
End Function
Dim rsSegment, rsGruppe, rsProdukt
' Hent segmenter
Set rsSegment = DBExecute("SELECT id, segmentnavn FROM segment ORDER BY id, segmentnavn")
' Hent grupper
Set rsGruppe = DBExecute("SELECT id, gruppenavn FROM gruppe ORDER BY id, gruppenavn")
' Hent produkter
Set rsProdukt = DBExecute("SELECT segmentid, gruppeid, cunr, produktnavn, enhed, pris FROM produkt ORDER BY segmentid, gruppeid, produktnavn")
'Luk access filen
DBConn.Close
Set DBConn = Nothing
%>
<html>
<head>
<title>test</title>
</head>
<body>
<form ENCTYPE="multipart/form-data" ACTION="be_test2.asp" METHOD="post" id="form1"
name="form1">
<input id="produkt" type="hidden" name="produkter">
<input id="inpSegment" type="hidden" name="segmentnavn">
<input id="inpGruppe" type="hidden" name="gruppenavn"><table width="560">
<tr>
<td colspan="2" width="1821" bgcolor="#AFB9CA"><strong><span lang="da">
</span></strong><br>
</td>
</tr>
<tr>
<td width="1817" colspan="2"><table border="1" cellpadding="6" cellspacing="0" width="560"
bordercolor="#FFFFFF" bgcolor="#DFDFDF">
<tr>
<td width="91">Vælg <span lang="da">net</span></td>
<td width="439"><select id="selSegment" onchange="SelSegGrp_OnChange()" size="1" name="D1">
<%
' Udskriv segmenter
Dim numSegmenter
numSegmenter = 0
Do While Not rsSegment.EOF
Response.Write "<option value=""" & rsSegment("id") & """>" & rsSegment("segmentnavn") & "</option>"
rsSegment.MoveNext
numSegmenter = numSegmenter + 1
Loop
%> </select></td>
</tr>
<tr>
<td width="91">Vælg <span lang="da">art</span></td>
<td width="439"><select id="selGruppe" onchange="SelSegGrp_OnChange()" size="1">
<%
' Udskriv grupper
Dim numGrupper
numGrupper = 0
Do While Not rsGruppe.EOF
Response.Write "<option value=""" & rsGruppe("id") & """>" & rsGruppe("gruppenavn") & "</option>"
rsGruppe.MoveNext
numGrupper = numGrupper + 1
Loop
%> </select></td>
</tr>
<tr>
<td width="91">Vælg produkter</td>
<td width="439"><%
Dim i, j
rsSegment.MoveFirst
Do While Not rsSegment.EOF
rsGruppe.MoveFirst
Do While Not rsGruppe.EOF
' For hvert segment, for hver gruppe, udskriv en dropdown liste til produkter
Response.Write Chr(13) & "<select id=""selProdukt" & rsGruppe("id") & rsSegment("id") & """ onchange=""selProdukt_OnChange()"" style=""display:none"">"
Response.Write "<option selected>Vælg...</option>"
If Not rsProdukt.EOF Then
Do While Ccur(rsSegment("id")) = Ccur(rsProdukt("segmentid")) And Ccur(rsGruppe("id")) = Ccur(rsProdukt("gruppeid"))
' Udskriv produkter
Response.Write "<option cunr=""" &rsProdukt("cunr") & """ enhed=""" &rsProdukt("enhed") & """ pris=""" &rsProdukt("pris") & """>" & rsProdukt("produktnavn") & "</option>"
rsProdukt.MoveNext
If rsProdukt.EOF Then
Exit Do
End If
Loop
End If
Response.Write "</select>"
rsGruppe.MoveNext
Loop
rsSegment.MoveNext
Loop
rsSegment.MoveFirst
rsGruppe.MoveFirst
%>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2" width="1821"><table border="1" id="tblProdukt" width="560"
bordercolor="#FFFFFF" bgcolor="#DFDFDF" cellspacing="0" cellpadding="6">
<tr>
<th>Fjern</th>
<th>nr</th>
<th>Navn</th>
<th>Antal / Enhed</th>
<th>Pris</th>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2" width="1821"></td>
</tr>
<tr>
<td width="575" bgcolor="#DFDFDF" bordercolor="#FFFFFF"><span lang="da">
Yderligere oplysninger</span></td>
<td width="1242" bgcolor="#DFDFDF" bordercolor="#FFFFFF"><textarea rows="3"
name="Beskrivelse" cols="31"></textarea></td>
</tr>
<tr>
<td width="575" bgcolor="#DFDFDF" bordercolor="#FFFFFF"> </td>
<td width="1242" bgcolor="#DFDFDF" bordercolor="#FFFFFF">
<INPUT TYPE="file" NAME="Fil" SIZE=35> </td>
</tr>
<tr>
<td colspan="2" width="1821"><button onclick="submitForm()">Send</button></td>
</tr>
</table>
</form>
<p> <br>
<br>
<br>
</p>
</body>
<script language="javascript">
var objSelProduktVist; // Variabel der holder hvilken af produkt-dropdown listerne der vises.
function window.onload() { // Denne funktion kører når siden lige er blevet vist.
objSelProduktVist = form1.selProdukt<%=rsGruppe("id") & rsSegment("id")%>; //Indsætter startværdien til den første liste af produkt-dropdown
objSelProduktVist.style.display = "block";
}
function SelSegGrp_OnChange() { // Denne funktion kører når der laves en ændring i segment- eller gruppe-dropdown
objSelProduktVist.style.display = "none"; // Skjuler den nuværende viste produkt-dropdown liste
var o = eval("form1.selProdukt" + form1.selGruppe.value + form1.selSegment.value); // Henter den produkt-dropdown liste der skal vises
o.style.display = "block"; // Vis den nye produkt-dropdown liste
o.selectedIndex = 0; // Sæt valget i produkt-dropdown liste til første element
objSelProduktVist = o; // Gem oplysningen om hvilken produkt-dropdown liste der nu vises
}
function selProdukt_OnChange() {
// Findes produktet i forvejen?
for(var i = 1; i < tblProdukt.rows.length; i++)
if(tblProdukt.rows(i).id == "" + objSelProduktVist.selectedIndex + form1.selGruppe.selectedIndex + form1.selSegment.selectedIndex)
break;
if(i == tblProdukt.rows.length) {
// Indsætter valgte produkt i en tabel
var objRow, objCell, objInput;
objRow = tblProdukt.insertRow();
objRow.setAttribute("id", "" + objSelProduktVist.selectedIndex + form1.selGruppe.selectedIndex + form1.selSegment.selectedIndex);
// Indsæt fjern-knap
objCell = objRow.insertCell();
objCell.innerHTML = "<button onclick=\"btnFjern_OnClick(this)\">Fjern</button>";
// Indsæt CUnr
objCell = objRow.insertCell();
objCell.innerText = objSelProduktVist.item(objSelProduktVist.selectedIndex).cunr;
// Indsæt navn
objCell = objRow.insertCell();
objCell.innerText = objSelProduktVist.item(objSelProduktVist.selectedIndex).text;
// Indsæt felt til antal samt enhed
objCell = objRow.insertCell();
objCell.innerHTML = "<input maxlength=\"10\" size=\"4\" style=\"text-align:right\" type=\"text\" value=\"\"> " + objSelProduktVist.item(objSelProduktVist.selectedIndex).enhed;
objInput = objCell.firstChild; // Hent antal objektet så der kan sættes fokus på det
// Indsæt pris
objCell = objRow.insertCell();
objCell.innerText = "" + objSelProduktVist.item(objSelProduktVist.selectedIndex).pris + "";
objInput.focus(); // Sæt fokus i det nye input felt
}
else {
alert("Produktet er allerede valgt!");
tblProdukt.rows(i).cells(3).firstChild.focus();
}
objSelProduktVist.selectedIndex = 0; // Sætter valget i produkt-dropdown til første element
}
function btnFjern_OnClick(obj) {
// Find frem til rækken der er trykket på
while(obj.tagName != "TR")
obj = obj.parentElement;
if(confirm("Er du sikker på du vil fjerne: " + obj.cells(2).innerText)) {
// Fjern rækken
tblProdukt.deleteRow(obj.rowIndex);
}
}
function submitForm() {
for(var i = 1; i < tblProdukt.rows.length; i++)
form1.produkt.value += "^" + tblProdukt.rows(i).cells(1).innerText + "" + tblProdukt.rows(i).cells(2).innerText + " " + tblProdukt.rows(i).cells(3).firstChild.value + tblProdukt.rows(i).cells(3).innerText + tblProdukt.rows(i).cells(4).innerText;
form1.produkt.value = form1.produkt.value.substring(1);
form1.inpSegment.value = form1.selSegment.item(form1.selSegment.selectedIndex).text;
form1.inpGruppe.value = form1.selGruppe.item(form1.selGruppe.selectedIndex).text;
form1.submit();
}
</script>
</html>
<%
'Ryd op
Set rsSegment = Nothing
Set rsGruppe = Nothing
Set rsProdukt = Nothing
%>
Fil nr.2. be_test2.asp
<html>
<head>
<title>Bekræft </title>
</head>
<body topmargin="0" leftmargin="0" marginwidth="0" marginheight="0">
<p> </p>
<p> </p>
<table border="1" width="650" height="190" cellspacing="0" cellpadding="6"
bgcolor="#F0F0F0" bordercolor="#FFFFFF">
<tr>
<td width="416" height="21" valign="top" colspan="2" bgcolor="#AFB9CA"
bordercolor="#FFFFFF">Du har sendt flg. oplysninger</td>
</tr>
<tr>
<td width="174" valign="top" height="19">Segment</td>
<td width="411" height="19"><%=Request.Form("segmentnavn")%>
</td>
</tr>
<tr>
<td width="74" valign="top" height="25">Produkter</td>
<td width="511" valign="top" height="25"><%
Dim arrProdukt, i 'Erklærer variable
arrProdukt=Split(Request.Form("Produkter"), "^") 'Lav et array ud fra de produkter der er medsendt
For i = 0 To Ubound(arrProdukt) 'Loop igennem arrayet og udskriv produkter
Response.Write arrProdukt(i) & "<br>" 'Udskriv hvert produkt
Next
%>
</td>
</tr>
</table>
<p align="left"><br>
</p>
<blockquote>
<p> </p>
</blockquote>
<p> </p>
<p> </p>
<p> </p>
<p><font face="Arial" color="#000055"><%
'Dansk tid og dato format (1030)
Session.LCID = 1030
Dim CR
Dim TA
Dim MyBody
dtmToday = Now
strTimestamp = FormatDateTime(dtmToday, vbShortDate) & Chr(32) & FormatDateTime(dtmToday, vbLongTime)
CR = Chr(10)
TA = Chr(32) & Chr(32) & Chr(32) & Chr(32) & Chr(32)
Set MyCDONTSMail = CreateObject("CDONTS.NewMail")
MyCDONTSMail.From ="xxxx@tdc.dk"
MyCDONTSMail.To= "liri@test.dk"
MyCDONTSMail.CC= ""
MyCDONTSMail.Subject="test " & request.form("nr")
MyBody = MyBody & "Segment........................: " & request.form("segmentnavn") & CR
MyBody = MyBody & "Alle valgte produkter...........................................:" & CR
For i = 0 To Ubound(arrProdukt)'Loop igennem arrayet og udskriv produkter
MyBody = MyBody & arrProdukt(i) & CR 'Udskriv hvert produkt
Next
MyBody = MyBody & CR
MyCDONTSMail.Body = MyBody
MyCDONTSMail.Send
set MyCDONTSMail = nothing
%> </font></p>
</body>
</html>
