2013-09-26 30 views
0

我試圖設置一個ColdFusion變量,在同一頁面上輸入的表單數據通過json發佈到CFC以存儲在數據庫中。用javascript設置Coldfusion變量用於替換()在同一頁上?

一個模式彈出與選項發送一個歡迎電子郵件到客戶端。該電子郵件的內容被預先分解並存儲在數據庫中。我們把它拉出來,然後我們在字符串上重新運行rereplace()幾次,以插入像剛剛在前一個窗體上設置的客戶端特定登錄名和密碼之類的東西。

因此,我試圖將登錄名和密碼變量設置爲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> 

請讓我知道如果我需要詳細說明。 我注意到一個問題後有時會注意到,我已經內部化了這個問題,以至於我可能無法很好地描述它。

謝謝你在前進,

史蒂芬

+0

發送純文本密碼是一個在這個時代不... ...但如果你必須。是否有一個原因,你不能通過在查詢字符串中傳遞一個新創建的用戶標識符來同時將數據存儲在數據庫中? – Jarede

+0

Javascript發生在客戶端。 ColdFusion變量存在於服務器上。根據所提供的信息很難確定這種情況的確切解決方案。看看如何生成用戶名和密碼。這會讓你開始。 –

+0

@Jarede,就發送密碼而言,我們的訂戶爲他們的新客戶建立了一個賬戶。我們將在新版本中構建更好的方法,但這是我現在需要處理的問題。我有同樣的想法。爲了您的其他觀點,我願意接受任何其他想法。你什麼意思? –

回答

2

你想要的是一個)的形式採取的形式字段值,和b)將它們應用到你的消息,你的模式。模態代碼是否已經是DOM的一部分?如果是這樣的話,你將使用JavaScript來拉取字段的值並替換textarea文本,而不是使用CF,因爲它已經是DOM的一部分(此時沒有服務器請求)。儘管(如上所述),這是相當直接的,但仍然不是很安全,除非你的模態郵政編碼是通過安全套接字。 (無論如何,你通常不會發送純文本un/pw,但這是另一個討論)。

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> 

感謝每個人的輸入。