使用javascript设置Coldfusion变量,以便在同一页面上的replace()中使用?

使用javascript设置Coldfusion变量,以便在同一页面上的replace()中使用?,javascript,json,coldfusion,replace,Javascript,Json,Coldfusion,Replace,在同一页面上输入的表单数据通过json发布到CFC并存储在DB中之后,我试图设置一个coldfusion变量 弹出一个模式,其中包含向客户发送欢迎电子邮件的选项。该电子邮件的内容被预合成并存储在数据库中。我们拉取它,在字符串上运行rereplace()几次,以插入像在上一个表单上刚刚设置的特定于客户端的登录名和密码之类的内容 因此,我试图将login和password变量设置为coldfusion变量,以便在rereplace()函数中使用它们,将它们添加到电子邮件消息字符串中,以便客户端接收它

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

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

因此,我试图将login和password变量设置为coldfusion变量,以便在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 coldfusion变量

模态部分:

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

#客户邮件记录#
如果我需要详细说明,请告诉我。 我注意到,有时在看了一个问题之后,我已经把这个问题内化了太多,以至于我可能无法很好地描述它

提前谢谢大家,

Steven

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

我想我明白了

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

提到的CFC,自从另一个人冲过去后就一直有问题。每周都会有一个不同的问题产生

就处理纯文本密码而言,你是绝对正确的。这是一张过时的s#!@我正在准备重新编写的软件,所以我必须选择要修复的内容,还有很多其他问题需要在它运行时解决,直到我开始在cake中重建

我所做的是使用该组件,根据是否保存了电子邮件内容来运行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>

挑选材料
挑选材料

谢谢大家的输入。

在这个时代,发送明文密码是不可能的。。。但如果你必须的话。有没有一个原因使您不能通过querystring传递一个新创建的用户ID,从而在获取数据库中存储的文本的同时获取详细信息?Javascript发生在客户机上。服务器上存在ColdFusion变量。根据给出的信息,很难确定这种情况的确切解决方案。看看用户名和密码是如何生成的。这会让你开始。@Jarede,就发送密码而言,是我们的订户为他们的新客户设置了一个帐户。我们将在一个新版本上构建一个更好的方法,但这是我现在必须处理的。我也有同样的想法。关于你的另一点,我对任何其他想法都持开放态度。你是什么意思?这确实取决于你的设置。。。理论上你可以这样做,当他们提交用户/pass时,它返回数据库userid,你的模态在返回之前不会弹出,然后你将userid传递给模态,模态逻辑从数据库中提取信息…不要使用cfinput。。你以后会恨自己的。仅仅添加一个表单字段就增加了很多开销。