我有一个复选框,用于在选中/取消选中时更新数据库表。更新是通过对CFC的ajax调用来执行的。那部分工作正常。现在我想在div
内显示来自CFC的响应。
问题是我当前的代码没有显示任何内容,而console.log()
我得到的内容未定义&#39;。如何从cfc获得响应,即<cfset finalResult = {user_names=new_value_name}>
在div中显示?
的jQuery / HTML
<div id="content"></div>
<script>
$('input:checkbox').click(function() {
var user_val = $('input[name=current_user]').val();
alert(user_val);
var id = $(this).attr('id');
var checked = $(this).is(':checked');
if ($(this).is(":checked")) {
$.ajax({
type: "POST",
url: 'ajaxcall.cfc?method=Getvalues',
data: {
checked: checked,
mycheckbox: id,
user_val: user_val
},
success: function(data) {
var objData = JSON.parse(JSON.stringify(data));
$('.mycheckbox').val(id);
$('.user_val').val(user_val);
//console.log(objData.user_names);
$("#content").html(objData.user_names);
},
error: function() {
alert('Error');
},
complete: function() {}
});
}
});
}
});
</script>
ajax_call.cfc
<cfcomponent output="true">
<cffunction name="Getvalues" access="remote" output="yes" returntype="struct" returnformat="json">
<cfset finalResult = {user_names=new_value_name}>
<cfreturn finalResult>
</cffunction>
</cfcomponent>
答案 0 :(得分:-2)
您可以使用JQuery.parseXML()
方法解析通过ajax请求获得的Xml:
var xml = "<cfcomponent output="true">
<cffunction name="Getvalues" access="remote" output="yes"
returntype="struct" returnformat="json">
<cfset finalResult = {user_names=new_value_name}>
<cfreturn finalResult>
</cffunction>
</cfcomponent>",
xmlDoc = $.parseXML( xml ),
$xml = $( xmlDoc ),
$result = $xml.find( "cfset" ).attr('finalResult');