我正在尝试呼叫有权在该特定类别中撰写新闻的用户的名称,并且我正在使用select2插件,因为可能有多个作者在处理同一新闻。因此,当我选择一个类别时,select2的选项字段必须显示用户的名称。
到目前为止,我已经执行了以下操作:
$("#news_category").change(function() {
var CatId = $("#news_category option:selected").attr('value');
$("#multipleSelect").select2({
ajax: {
url: "/process/categoryUsers.php",
type: "post",
dataType: 'json',
delay: 250,
data: {
id: CatId
}, function(params) {
return {
searchTerm: params.text
};
}
},
processResults: function(response) {
console.log(response)
return {
results: response
};
},
cache: true
}
});
在日志中,我看到了我希望看到的数据,但select2插件中没有该数据。我感觉自己在data: ....
中做错了事,我正在使用CatId来获取用户列表,我将id作为第一个参数传递,并将第二个函数传递给了当我提供用户列表的函数单击以搜索select2插件
我希望获得控制台中相同用户的列表。
注意::我正在获取Unicode字符中的数据
更新:#news_category
是另一个未使用select2插件的选择字段,因此,在发生更改事件时,我正在获取已分配给CatId的所选选项中的类别ID,以获取用户。假设我在变量CatId中得到1,我将该CatId作为参数传递给获取允许在类别ID 1中编写新闻的用户。就像我说的那样,我只是想显示在控制台日志中得到的期望值他们在下拉列表中。
答案 0 :(得分:0)
就像我在评论中说的那样,我觉得您在data
中做错了什么。为了使控制器从函数中返回,我会这样做。
function Getparam (params) {
return {
searchTerm: params.text
};
}
然后在数据中执行:
`data: {id: CatId, param: Getparam(params)}`
这会传递id和json中的任何参数
编辑:您似乎只是想返回下拉菜单的文本?
您可以执行此操作,而不使用任何参数:
var ddtext = $("#news_category option:selected").text();
然后在data
中拥有data: {id: CatId, text: ddtext}
编辑2: 要设置另一个下拉菜单的值,可以使用下面的标记。
//Create a markup for a select
var markup = "<option Value='0'>Select option</option>";
//Populate the markup
for (var i = 0; i < result.length; i++) {
markup += "<option Value=" + result[i].Value + ">" + result[i].Text + "</option>";
}
//Populate dropdown with value
$("#//DROPDOWNLIST ID").html(markup).show();
注意:这是html标记。这个字元位于ajax呼叫的success
或您的情况processResults
中,并将使用processResults
响应中传回的数据填充下拉列表