如何使用jQuery.post()將表單發佈到Coldfusion.cfc方法並返回json數據?是否有某種方法需要格式化url或表單值以指定cfc方法來遠程調用?我如何告訴Coldfusion返回json數據?如何使用jQuery.post()將ColdFusion 8 cfc返回JSON數據?
我搜索了現有的jQuery/Coldfusion.cfc問題,我正在尋找一些清晰的。我找不到一個能夠顯示Coldfusion cfc完整過程的例子。
HTML表單:
<!--- Assume: jquery, jquery-ui, sample.js is loaded --->
<p><a href="#" id="openDialog">Open Dialog</a></p>
<div id="myDialog" title="My Dialog" class="dialog">
<form id="myForm">
<label for="title">Title:</label><br />
<input type="text" name="title" id="title" value="" /><br />
<label for="address">Address:</label><br />
<input type="text" name="address" id="address" value="" /><br />
<input type="submit" name="save" value="save" />
</form>
</div>
sample.js:
jQuery(function ($) {
var saveUrl = "remote.cfc?method=save"; // Is this the right way??
// Bind link to open the dialog box
$('a#openDialog').click(function() {
$('#myDialog').dialog('open');
});
// Configure jQuery UI dialog box and callback methods
// Is this right??
$("#myForm").dialog({
buttons: {
'Save': function() {
$.post(saveUrl, $("#myForm").serialize(), function(result){
alert("Result: " + result);
}, "json");
$(this).dialog('close');
},
'Cancel': function() {
$(this).dialog('close');
}
});
});
remote.cfc:
<cfcomponent>
<!--- If I set the returnFormat to JSON do I need to specify json in the post too? --->
<cffunction name="save" access="remote" returntype="string" returnFormat="JSON">
<cfargument name="title" type="string" required="yes">
<cfargument name="address" type="string" required="yes">
<cfset var result = structNew()>
<!--- Do some data manipulation or cfquery here, save to result struct --->
<cfreturn result>
</cffunction>
</cfcomponent>
*注意,我發現有ColdFusion的調試真的會偷懶up cfc返回值,所以它應該被抑制或關閉。
您可以在帖子中傳遞returnformat,而不是將其設置爲cffunction標記中的屬性。 您可能想要在cfcomponent和cffunction標記中將輸出設置爲false。 – 2010-01-09 20:13:50