playframework: выбранное значение в раскрывающемся списке

Как передать значение из одного раскрывающегося списка во второй раскрывающийся список.

Пример:

Шаблон

#{select 'pl'}

            #{list platforms, as: 'platform'}
                #{option}${platform.description} #{/option}
            #{/list}
#{/select}                          


 #{select 'pl'}        
        #{list cdrs, as:'cdr'}
               #{option}${cdr.description} #{/option}
        #{/lisst}          
 #{/select}        

person Sergei    schedule 30.08.2011    source источник


Ответы (3)


Если вы имеете в виду использование Javascript для «связывания» двух вариантов выбора, таких как Country/City, я переместил код для второго выбора в его собственное представление (например, Cities/selectCities.html)

#{select 'city', items: cities, valueProperty: 'id', labelProperty: 'name' /}

и используйте включение в представлении, где у меня будут оба цепных выбора

<select name="country" id="select-country">
    <option value="ES">Spain</option>
    <option value="US">United States</option>
</select>

<span id="select-city">
    #{include 'Cities/selectCities.html' /}
</span>

теперь некоторый javascript в том же представлении для перезагрузки второго выбора в случае изменения первого выбора

$('#select-country').change(function() {
    var selectAction = #{jsAction @reloadCities(':country') /};
    $('#select-cities').load(selectAction({country: $(this).val()}));
});

и в контроллере у нас есть наш метод перезагрузки городов, отображающий только второй выбор снова

public static void reloadCities(String country) {
    List<City> cities = City.find("byCountryCode", country).fetch();

    render("@selectCities", cities);
}

и на этом все, у меня работает с плей 1.2.5

person Carlisg    schedule 10.08.2012

Ваш вопрос не совсем ясен, но если я правильно понимаю, вы хотите изменить выбор в зависимости от значения выбранного элемента в первом выборе. Это невозможно, так как это анимация во время выполнения.

Вам нужно будет взглянуть на Ajax/Javascript, чтобы делать такие вещи.

person i.am.michiel    schedule 30.08.2011

Если вы имеете в виду, что после рендеринга в браузере вы должны использовать Javascript.

В противном случае используйте ключевое слово value, как описано в документации (здесь).

person Pere Villega    schedule 30.08.2011