【发布时间】:2015-06-12 17:06:04
【问题描述】:
我有一个 HTML 表单,其中包含一个页面中的元素,该页面是 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>
如果用户从 multi_select 中选择 A & C,Sinatra 中的 POST 处理程序应该返回选择的值,但因为 params 是一个哈希,它只返回最后选择的值(所以 params[:multi_select] = " C”)。
由于各种原因,我无法使用 Javascript 或其他前端技巧来更改值的发送方式。有没有一种在服务器端正确处理这个问题的好方法?在这个项目之前,我没有与 Sinatra 合作太多。
【问题讨论】:
-
This discussion 暗示如果您将名称格式化为数组,它将起作用。你试过
<select name="multi_select[]"... -
天啊!是的,这就解决了。如果您想将评论移至回复。我很乐意将其标记为正确答案。还有,谢谢!
标签: html ruby select post sinatra