我通过这个网站搜索了很多,发现了一些类似的帖子,但他们无能为力。我有2个下拉菜单。第一个是通过内联查询填充的。第二个需要通过第一个选择填充。我知道cfselect
和cfajaxproxy
是最简单的2个,但我想在Railo上使用它们,它们不支持它们(检查并返回失望)。
ajax代码如下:
$.ajax({
type: 'POST',
url: 'admin/getModelsForManufs.cfc?method=getModels&returnFormat=JSON',
data: {manuid:selected},
dataType: "text",
success: function(res) {
var newoptions = "";
for(var i=0; i<res.length; i++) {
newoptions += "<option value=\"" + res[i].ID + "\">" + res[i].NAME + "</option>";
}
$("#model").append(newoptions);
},
error: function(x) {
alert(x.responseText);
}
});
其中manuid
是第一个选择,model
是要填充的第二个下拉列表的html字段ID。 cfc具有以下内容:
<cffunction name="getModels" access="remote" returnType="array">
<cfargument name="manuid" type="numeric" required="true" default="#url.manuid#">
<cfset var data="">
<cfset var result=[]>
<cfset var i=0>
<cfquery name="data" datasource="#THIS.dsn#">
select modelId, modelName
from tablename
where manufacturerid = <cfqueryparam cfsqltype="cf_sql_integer" value="#arguments.manuid#">
</cfquery>
<cfloop index="i" from="1" to="#data.RecordCount#">
<cfset model = {}>
<cfset model.NAME = data.modelName[i]>
<cfset model.ID = data.modelId[i]>
<cfset arrayAppend(result, model)>
</cfloop>
<cfreturn result>
</cffunction>
在Firebug中,数据格式为:
[{"ID":84.0,"NAME":"name 1"},{"ID":1.0,"NAME":"name 2"}]
看起来正确并且返回了更多记录。尝试了大部分技巧,但仍然为我为什么第二次下拉不填充而感到头疼。任何帮助都非常感谢。提前谢谢。
答案 0 :(得分:0)
试试此代码
$.ajax({
type: 'POST',
url: 'admin/getModelsForManufs.cfc?method=getModels&returnFormat=JSON',
data: {manuid:selected},
dataType: "text",
success: function(res) {
var res2 = JSON.parse(res);
var newoptions = "";
for(var i=0; i<res2.length; i++) {
newoptions += "<option value=\"" + res2[i].ID + "\">" + res2[i].NAME + "</option>";
}
$("#model").append(newoptions);
},
error: function(x) {
alert(x.responseText);
}
});