Zend - 组合框值取决于另一个组合框值

时间:2012-04-05 18:12:32

标签: php zend-framework combobox zend-form zend-studio

在Zend Framework中是否有办法根据前一个组合框中选择的值填充组合框,但是在同一页上?

在我的情况下,我有一个用于域的组合框和一个用于专业化的组合框。如果我在第一个组合框(域)中选择信息学,我想用一个专业化 - “信息学”填充第二个。但如果我在第一篇中选择数学,我想用第二篇专业来填补数学:“数学”和“数学与信息学”。

谢谢! 索林

2 个答案:

答案 0 :(得分:0)

如果您的服务器中的数据库中存在域与专业化之间的关系数据。您可以将更改事件上的侦听器附加到域组合框,并通过使用ajax发布请求检索所选域的特化来相应地填充第二个组合框:

这是一个使用jquery的例子:

 $(".domain").change(function()
{
  var domainId=$(this).val();
  var dataString = 'domainId='+ domainId; 

 $.ajax
 ({
   type: "POST",
   url: baseurl+"getSpecialisations", 
   data: dataString,
   cache: false,
   success: function(html)
          {
            $(".specialisation").html(html);
          }
 });
});

并在您的控制器中创建一个动作getSpecialisationsAction,它将检索您的域的规范,请查看here以获取如何将发布请求发送到zend操作的示例。

答案 1 :(得分:0)

我使用了一个非常简单的解决方案:我已选择在一个页面上选择域,并根据所选域选择在另一个页面上选择专业化。