У меня есть HTML-форма с элементом на странице, которая является частью приложения Sinatra, например.Как обрабатывать несколько значений из одного поля select в Sinatra?
<form action="/form" method="post">
<p>
<label for="text">Text</label>
<input type="text" name="text" id="text">
</p>
<p>
<label for="select">Selection</label>
<select name="select" id="select">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
</select>
</p>
<p>
<label for="multi_select" multiple>MultipleSelection</label>
<select name="multi_select" id="multi_select" multiple>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
</select>
</p>
<p>
<input type="submit" name="submit" value="Submit">
</p>
</form>
Если пользователь выбирает & C из multi_select, обработчик POST в Синэтрой должна возвращать выбранные значения, а потому, что params
является хэш, это только возвращает последнее выбранное значение (так params[:multi_select]
= " C ").
По различным причинам я не могу использовать Javascript или другие интерфейсные трюки, чтобы изменить способ отправки значения. Есть ли хороший способ справиться с этим правильно на стороне сервера? Я не много работал с Sinatra до этого проекта.
[Это обсуждение] (https://groups.google.com/forum/#!topic/sinatrarb/qA8tNbtMApE) следует, что при форматировании имени как массив будет работать. Вы пробовали '
D'oh! Да, это решает. Если вы хотите переместить комментарий в ответ. Я был бы счастлив отметить это как правильный ответ. Кроме того, спасибо! –