0

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
%>

非表示フィールドを「無視」してドロップダウンから値を送信すると、フォームはエラーなしで送信され、情報がデータベースに追加されます。

これを正しく機能させるために何を変更する必要があるかについてのアイデアはありますか?

4

1 に答える 1

0

挿入しようとしているデータが切り詰められている可能性があります。文字列の長さが 250 で、データベース フィールドが 50 文字しか受け付けない場合、このエラーが発生します。

詳細... チェックアウト80040E57 / 80040E07 エラーが発生するのはなぜですか?

于 2012-11-20T15:59:33.190 に答える