0

在同一页面上输入的表单数据通过 json 发布到 CFC 以存储在 DB 中后,我试图设置一个冷融合变量。

弹出一个模式,可以选择向客户发送欢迎电子邮件。该电子邮件的内容已预先编写并存储在数据库中。我们拉取它并在字符串上运行 rereplace() 几次,以插入刚刚在前一个表单上设置的客户端特定登录名和密码之类的内容。

因此,我试图将登录名和密码变量设置为冷融合变量,以便它们可以在 rereplace() 函数中用于将它们添加到电子邮件消息字符串中,这样客户端就会收到他们的凭据。

<tr>
    <td>
    <cfparam name="ClientLogin" default="">
    <cfinput type="Text" id="ClientLogin" name="ClientLogin" value="#ClientLogin#" required="Yes" message="Client Login is required" maxlength="60" class="inputText430">
    </td>
</tr> 
<tr>
    <td>
    <cfparam name="ClientPassword" default="">
    <cfinput type="Text" name="ClientPassword" value="#ClientPassword#" required="Yes" message="Client Password is required" maxlength="15" class="inputText430">
    </td>
</tr> 

ClientEmailNotes 是从查询中提取的,我需要从表单输入中设置 ClientLogin 和 ClientPassword 冷融合变量。

模态的一部分:

<cfset ClientEmailNotesStr = #clientemailDefault.ClientEmailNotes#>

<cfset ClientEmailNotesStr = Replace(ClientEmailNotesStr,"CLIENT_LOGIN","#ClientLogin#","ALL")>
<cfset ClientEmailNotesStr = Replace(ClientEmailNotesStr,"CLIENT_PASSWORD","#ClientPassword#","ALL")>
<cfset ClientEmailNotesStr = Replace(ClientEmailNotesStr,"COMPANY_NAME","#companyname.Company#","ALL")>

<textarea name="Message" cols="90" class="textArea430" wrap="virtual" style="width:420px; height:93px;">
#ClientEmailNotesStr#
</textarea>

如果我需要详细说明,请告诉我。我注意到有时在看到一个问题后,我已经把这个问题内化了这么多,以至于我可能描述得不够好。

先感谢您,

史蒂文

4

2 回答 2

2

您想要的是 a) 从表单中获取表单字段值,然后 b) 将它们应用到您的模态消息中。模态代码是否已经是 DOM 的一部分?如果是这种情况,您将使用 JavaScript 来提取字段的值并替换 textarea 文本,而不是使用 CF,因为它已经是 DOM 的一部分(此时没有服务器请求)。尽管(如前所述)这相当简单,但仍然不是很安全,除非您的模态邮政编码是通过安全套接字。(无论如何,您通常不会通过电子邮件发送纯文本 un/pw,但这是另一个讨论)。

于 2013-09-26T16:11:50.417 回答
0

我想我明白了。

我知道 CF 是在服务器上处理的,而 JS 是客户端,但是文件上有一些代码让我分心。所以我需要提醒它,让它从不同的角度点击。所以谢谢你。

提到的 CFC 一直存在问题,因为另一个人冲过它。每周都会产生不同的问题。

就处理纯文本密码而言,您是绝对正确的。这是一个过时的 s#!@ 软件,我正准备重新编写它,所以我必须在要修复的问题上进行斗争,还有很多其他问题需要解决活到我开始重建蛋糕。

我所做的是使用该组件,根据是否保存了电子邮件内容来运行 replace(),然后将其附加到表单页面上的文本区域,以用于模式中的电子邮件消息。

返回要附加的数据的 CFC 页面:

<cffunction name="getEmailMessage" access="remote" returnformat="json">
<cfargument name="ClientLogin" default="">
<cfargument name="ClientPassword" default="">

<cfquery name="companyname" datasource="#arguments.datasource#">
SELECT STUFF
</cfquery>
<cfquery name="clientemailDefault" datasource="#arguments.datasource#">
SELECT STUFF
</cfquery>
<cfif clientemailDefault.ClientEmailNotes eq ''>

<cfset content.message='Hard Coded Text'>

<cfelse>

<cfset ClientEmailNotesStr = #clientemailDefault.ClientEmailNotes#>
<cfset ClientEmailNotesStr = REReplace(ClientEmailNotesStr,"CLIENT_LOGIN","#arguments.ClientLogin#","ALL")>
<cfset ClientEmailNotesStr = REReplace(ClientEmailNotesStr,"CLIENT_PASSWORD","#arguments.ClientPassword#","ALL")>
<cfset ClientEmailNotesStr = REReplace(ClientEmailNotesStr,"COMPANY_NAME","#companyname.Company#","ALL")>


<cfset content.message = #ClientEmailNotesStr# >

</cfif>

<cfreturn content>
</cffunction>

感谢大家的意见。

于 2013-09-26T16:59:08.123 回答