my ($self, $c) = @_;
$c->stash->{buildallinfo}=$c->model('DB::misc')->getTestInformation();
Buildall信息转储就像:
Apple => type2=>[2,3]
type4=>[2,1]
Mango => type6=>[2,3]
type2=>[2,1]
如果下拉一个chanes自动下拉2,如何在下拉框中呈现它们应该更改?
=苹果改变
它应该自动更改另一个它将具有type2,4的列表然后如果那个选择它应该显示2,3
如何实现这一目标。我并非都能为此做出正确的解决方案。
答案 0 :(得分:0)
操作下拉列表中的内容是客户端功能,必须由javascript处理。对于Catalyst和TT,他们的工作是在呈现页面时完成的 - 除此之外的任何操作都是别人的问题。
这意味着在您的模型,Catalyst和TT之间,必须安排数据可供javascript使用。换句话说,在Template Toolkit中有一行或两行,它确保您需要使用javascript访问的存储内容转换为javascript变量。
通常,我会沿着这些方面做一些事情,使用一些jQuery:
[% USE JSON.Escape %]
<script>
var buildallinfo = [% buildallinfo.json %];
// we now have a JS variable that matches the structure of the perl stash variable
$('#select_1').change(function(){
// adjust content of #select_2 using normal JS techniques
// $.grep(buildallinfo, ...) or whatever
});
</script>