2 つのアクションを完了する ASP フォームがあります。1 つ目は、データをデータベースに送信することです。2 つ目は、フォームで選択した人にデータを電子メールで送信することです。
従業員の名前を表示し、従業員の電子メール アドレスの値を渡すドロップダウン メニューがあります。
現在、この Jquery コードを使用して従業員名を非表示フィールドに渡し、その非表示フィールドを使用してデータベースに送信したいと考えています。
$(document).ready( function (){
$("#to").change( function(){
var selectedValue = $("#to option:selected").val();
var selectedText = $("#to option:selected").text();
$("#hiddenText").val( selectedText );
alert("Hidden field text is: " + $("#hiddenText").val());
});
});
これは機能しているように見え、アラートには正しい値が表示されます。フォームを送信してデータベースに挿入しようとすると、「Microsoft OLE DB Provider for ODBC Drivers error '80040e57' [Microsoft][ODBC Microsoft Access Driver] Invalid string or buffer length /intranet/EmployeeInfo/Heroes1/」というエラーが表示されます。ヒーローポスト.asp、30行目
以下は挿入コードです。
<%
If (CStr(Request("MM_insert")) = "heroes") Then
If (Not MM_abortEdit) Then
' execute the insert
Dim MM_editCmd
Set MM_editCmd = Server.CreateObject ("ADODB.Command")
MM_editCmd.ActiveConnection = MM_PhoneDir_STRING
MM_editCmd.CommandText = "INSERT INTO REACH ([To], Dept, prideSelect, flagpoleSelect, [comment], [from]) VALUES (?, ?, ?, ?, ?, ?)"
MM_editCmd.Prepared = true
MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param1", 203, 1, 1073741823, Request.Form("hiddenText")) ' adLongVarWChar
MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param2", 202, 1, 50, Request.Form("dept")) ' adVarWChar
MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param3", 202, 1, 50, Request.Form("prideSelect")) ' adVarWChar
MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param4", 202, 1, 255, Request.Form("flagpoleSelect")) ' adVarWChar
MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param5", 203, 1, 1073741823, Request.Form("comment")) ' adLongVarWChar
MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param6", 202, 1, 100, Request.Form("from")) ' adVarWChar
MM_editCmd.Execute
MM_editCmd.ActiveConnection.Close
' append the query string to the redirect URL
Dim MM_editRedirectUrl
MM_editRedirectUrl = "HeroesThanks.asp"
If (Request.QueryString <> "") Then
If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0) Then
MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
Else
MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
End If
End If
Response.Redirect(MM_editRedirectUrl)
End If
End If
%>
非表示フィールドを「無視」してドロップダウンから値を送信すると、フォームはエラーなしで送信され、情報がデータベースに追加されます。
これを正しく機能させるために何を変更する必要があるかについてのアイデアはありますか?