визуализация списка различной длины на HTML-странице

#javascript #html #loops

#javascript #HTML #циклы

Вопрос:

привет, мне нужно отобразить список объектов (например. отели) на html-странице, и пользователь должен выбрать отель, затем идентификатор отеля должен быть отправлен обратно на контроллер, длина этого списка не фиксирована, пусть это будет n, поэтому я подумал о создании n переключателей, но я понял, что html не поддерживает циклы, и я не знаю, возможно ли создавать формы в javascripts

обратите внимание, что в этом приложении я использую play Framework

любая помощь, заранее спасибо

Комментарии:

1. HTML не поддерживает циклы, потому что это не язык программирования. Он не допускает условных выражений, функций, присвоения значений и т.д. Это просто для указания содержимого. Я думаю, вам было бы очень полезно освежить основы веб-разработки, чтобы вы имели четкое представление о HTML, CSS, JavaScript и языках серверной части по вашему выбору. К сожалению, я не знаком с Play Framework, поэтому я не могу предложить какую-либо помощь в этом. Могу сказать вам, что это очень простая задача в любом фреймворке, который я когда-либо использовал.

2. По-видимому, Play — это фреймворк для Java / Scala. В этом случае в вашем коде просмотра вам потребуется выполнить итерацию по списку отелей и создать входной тег для каждого из них.

Ответ №1:

Это всего лишь базовая концепция того, как выполнить итерацию по объекту и распечатать html. Не идеально, не совсем то, что вам нужно, но отправная точка.

 var hotels = ['best western','hilton','super 8'];
for( var i=0; i<hotels.length; i   )
{
    document.write( '<input type="radio" name="hotels" id="'   i   '" />'   hotels[i] );
} // for
  

В действии

Комментарии:

1. спасибо, но сработает ли это, если список ячеек передается из контроллера в представление, а не является переменной, определенной в скрипте??

2. Я не уверен, как работает ваш конкретный фреймворк, но вы, вероятно, могли бы установить переменную для вывода из представления.. Например, в Django или чем-то еще var hotels = ${hotels}; Но это, вероятно, слишком сложно. Я уверен, что есть способ, которым вы могли бы просто распечатать список с вашего контроллера?