如何显示DIV内ajax调用的响应?
问题描述:
我有一个复选框,当选中/取消选中时更新数据库表。更新通过对CFC的ajax调用执行。那部分工作正常。现在我想在div
内显示CFC的回复。如何显示DIV内ajax调用的响应?
问题是我现在的代码什么也没有显示,并且在console.log()
上我得到'undefined'。我怎样才能得到从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>
答
您可以解析XML,你使用JQuery.parseXML()
方法通过Ajax请求有:
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');
+0
代码块中的“XML”是第二个文件“ajax_call.cfc”的源代码。只有配置不良的Web服务器才会在ajax调用中返回。 – Twillen
这是XML ,而不是JSON。 – Barmar
做'objData = JSON.parse(JSON.stringify(data))'是什么意思?这与'objData = data'是一样的。 – Barmar
Ajax调用回来了什么?原始json是什么样的。另外,如果这是“innerHTML”?还是我混淆jQuery与普通的JS? –