动态 ajax/php select 标签
Dynamic ajax/php select tag
晚上好,
我的动态 select 遇到了一个小问题,就像标题中已经说过的那样。我的目标是达到以下结果:
如果某人 select 使用第一个 select 标签的乐器,另一个名为 "Besetzung" 的标签应该过滤演奏 selected 乐器的用户列表,对于第二个 select 标签如图所示
screenshot
(Instrument = 乐器;E-Bass = 电贝司;Besetzung = 职业;Offen = 开放)
到目前为止一切正常。但我的问题是,我得到了 3 到 10 个这样的蓝框(截图)。您可以通过按钮手动添加这些框。每个盒子都应该包含这些 "individual" select 标签...所以我需要像每个 select 标签的唯一 ID,每次添加一个盒子。所以这是我到目前为止的动态 selection 函数:
function fetch_select(val)
{
$.ajax({
url: 'get_data.php',
type: 'POST',
data: {
get_option:val.value
},
success: function (response) {
document.getElementById("studentSelect").innerHTML=response;
}
});
}
如果函数成功,则更改 ID "studentSelect" 的元素。但我需要的是类似数组的东西,它在我的 html、php 和 ajax 中用于更改每个元素...我不知道如何给每个元素单个 select 标记一个唯一的 ID,因为当有人使用该网站时,标记的数量会发生变化。
我希望你明白我的意思,对我来说有点难以解释。
提前感谢您的帮助。
您通常会做的是对所有涉及的元素使用通用 class。
然后在更改事件中,您可以获得已更改的 select class 的特定实例,并使用它遍历到相应的其他 select 以填充
重复结构
<div class="row">
<select class="select-1"></select>
<select class="select-2"></select>
</div>
JS
$(document).on('change', '.select-1', function(){
// traverse to closest row, then look within that row for matching select
var $otherSelect = $(this).closest('.row').find('.select-2');
$otherSelect.load('get_data.php', {get_option: this.value})
.fail(function(){ alert('Oops something went wrong')});
});
所以你有两个 select 列表,第二个列表取决于第一个列表中 select 的内容。这是问卷中很常见的任务。
您做的第一件事是通过 ajax 更改第二个 select 列表,由第一个 select 列表中的更改触发,对吗? (很好)
所以你基本上需要的是 php(服务器端代码),即 returns 2d select 列表的 html。不是吗?
不管怎样,我们这里需要的是第一个列表中每个选项的选项列表。如果需要,该信息应该以表格或数组的形式出现在服务器端。
如果您为第一个列表的每个选项提供选项列表,那么我或其他人可以帮助您 php。
晚上好, 我的动态 select 遇到了一个小问题,就像标题中已经说过的那样。我的目标是达到以下结果: 如果某人 select 使用第一个 select 标签的乐器,另一个名为 "Besetzung" 的标签应该过滤演奏 selected 乐器的用户列表,对于第二个 select 标签如图所示 screenshot (Instrument = 乐器;E-Bass = 电贝司;Besetzung = 职业;Offen = 开放)
到目前为止一切正常。但我的问题是,我得到了 3 到 10 个这样的蓝框(截图)。您可以通过按钮手动添加这些框。每个盒子都应该包含这些 "individual" select 标签...所以我需要像每个 select 标签的唯一 ID,每次添加一个盒子。所以这是我到目前为止的动态 selection 函数:
function fetch_select(val)
{
$.ajax({
url: 'get_data.php',
type: 'POST',
data: {
get_option:val.value
},
success: function (response) {
document.getElementById("studentSelect").innerHTML=response;
}
});
}
如果函数成功,则更改 ID "studentSelect" 的元素。但我需要的是类似数组的东西,它在我的 html、php 和 ajax 中用于更改每个元素...我不知道如何给每个元素单个 select 标记一个唯一的 ID,因为当有人使用该网站时,标记的数量会发生变化。
我希望你明白我的意思,对我来说有点难以解释。 提前感谢您的帮助。
您通常会做的是对所有涉及的元素使用通用 class。
然后在更改事件中,您可以获得已更改的 select class 的特定实例,并使用它遍历到相应的其他 select 以填充
重复结构
<div class="row">
<select class="select-1"></select>
<select class="select-2"></select>
</div>
JS
$(document).on('change', '.select-1', function(){
// traverse to closest row, then look within that row for matching select
var $otherSelect = $(this).closest('.row').find('.select-2');
$otherSelect.load('get_data.php', {get_option: this.value})
.fail(function(){ alert('Oops something went wrong')});
});
所以你有两个 select 列表,第二个列表取决于第一个列表中 select 的内容。这是问卷中很常见的任务。
您做的第一件事是通过 ajax 更改第二个 select 列表,由第一个 select 列表中的更改触发,对吗? (很好)
所以你基本上需要的是 php(服务器端代码),即 returns 2d select 列表的 html。不是吗?
不管怎样,我们这里需要的是第一个列表中每个选项的选项列表。如果需要,该信息应该以表格或数组的形式出现在服务器端。
如果您为第一个列表的每个选项提供选项列表,那么我或其他人可以帮助您 php。