2012-10-09 49 views
0

我試圖在調用CFC更新數據並返回基於我在互聯網和某些研究中找到的示例組合的結果上創建模態。我已經或多或少地工作了,但是當定義我的參數時,我遇到了一個奇怪的問題,我的傳入值正在輸入我的CFC函數,作爲我傳遞的值的逗號分隔字符串副本。我的代碼看起來是這樣的:在Ajax調用中爲參數創建重複值

的Javascript:

var amodal = $("##my-modal-form").dialog({ 
     bgiframe: true, 
     modal: true, 
     buttons: { 
      'Update Data': function() { $("##modal-form-test").submit(); }, 
      Cancel: function() { $(this).dialog('close'); aform.resetForm(); } 
     } 
    }); 

submitHandler: function(form) { 
      jQuery(form).ajaxSubmit({ 
       target: '##client-script-return-data', 
       data: { 
        fullname: $('##fullname').val(), 
        email: $('##email').val() 
       }, 
       success: function() { $('##my-modal-form').dialog('close'); successEvents('##client-script-return-msg'); } 
      }); 
     } 

的ColdFusion:

<cffunction name="userModalTest" access="remote" output="false" returnformat="json"> 
    <cfargument name="fullname" type="any" required="true" default="" hint="unknown arg type" /> 
    <cfargument name="email" type="any" required="true" default="" hint="" /> 

    <cfset var testVar = '' /> 

    <cfset testVar = serializeJSON(arguments) /> 

    <cfreturn testVar /> 
</cffunction> 

當我通過我的文字字符串參數和轉儲的結構,我的全名和電子郵件參數都重複值,比如「全名:測試,測試」而不是「全名:測試」。我可以通過在submitHandler函數中定義數據值或者不在CFC中定義參數來做到這一點,但是根據我的理解,這些解決方案都不應該實際工作,所以我不太明白髮生了什麼。

+0

忘記提到,使用jQuery與jQuery的形式插件。 –

回答

2

由於您正在提交表單,因此無需通過data屬性調用ajaxSubmit()

我認爲這是導致ajax提交一個輸入參數陣列fullnameemail。該數組在服務器中以逗號分隔的字符串形式提交。

你能刪除data並嘗試。

例:

jQuery(form).ajaxSubmit({ 
    target: '##client-script-return-data', 
    success: function() { $('##my-modal-form').dialog('close'); successEvents('##client-script-return-msg'); } 
}); 
+0

好吧,這是有道理的。我正在查看我的代碼並將其與示例進行比較;我已經定義了CFC中的參數的示例實際上並未使用輸入的表單標記,而是使用POST操作調用CFC。 Mine正在使用AjaxSubmit並使用操作值定義表單。我以前曾嘗試過您的示例,但確實有效,但我不明白爲什麼。感謝澄清。 –

相關問題