Zend - значение поля со списком в зависимости от другого значения поля со списком

Есть ли способ в Zend Framework заполнить поле со списком значениями в зависимости от значения, выбранного в предыдущем поле со списком, но на той же странице?

В моем случае у меня есть поле со списком для домена и одно для специализации. Если я выберу Информатику в первом поле со списком (домен), я хочу заполнить второй одной специализацией - "Информатика". Но если я выберу математику в первом, я хочу заполнить второй двумя специализациями: «Математика» и «Математика и информатика».

Спасибо! Сорин


person Sorin Adrian Carbunaru    schedule 05.04.2012    source источник
comment
Вы пробовали AJAX? когда одно из полей со списком изменяется, отправьте запрос AJAX на сервер и верните объект json, содержащий параметр для второго поля со списком.   -  person Songo    schedule 06.04.2012


Ответы (2)


если у вас есть данные с отношениями между доменом и специализацией в базе данных на вашем сервере. вы можете прикрепить прослушиватель события изменения к полю со списком вашего домена и соответствующим образом заполнить второе поле со списком, получив специализации выбранного домена с помощью почтового запроса 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, которое будет получать спецификации вашего домена, проверьте здесь для примера того, как отправить запрос на публикацию в действие zend.

person Mouna Cheikhna    schedule 05.04.2012

Я использовал очень простое решение: я разместил возможность выбора домена на одной странице и возможность выбора специализации на другой странице в зависимости от выбранного домена.

person Sorin Adrian Carbunaru    schedule 04.06.2012