将所有选中的项放入数组中的复选框中

时间:2012-04-18 22:45:31

标签: html ruby-on-rails-3

我需要在html页面中获取所有已检查的项目并将它们放在一个数组中以对其执行某个操作。我不明白复选框的字段(名称,值,...)。我在轨道上使用带红宝石的html!

3 个答案:

答案 0 :(得分:0)

如果您需要使用javascript在客户端进行,您可以使用这样的jQuery:

var arr = $('[type=checkbox]:checked');

如果你需要在服务器端的ruby on rails上执行此操作,我无法帮助你。但是我知道只有选中的复选框才会在GET或POST上发送回服务器,所以如果你知道这些复选框的名称,你可以从请求对象中获取它们并将它们放在一个数组中。未选中的复选框永远不会到达服务器,因此您不必明确忽略它们。

答案 1 :(得分:0)

如果您这样做:

<input type='checkbox' name='User[]' VALUE='someVal'>Visible Text</option>

无论用户选中哪个复选框,都会提交一个名为User的POST数组。

在名称中添加[]会在提交时创建一个数组。

不确定在ruby轨道上但在php中这样做很热。提交表单但用户将数组传递给服务器。我们将复选框命名为User,因此我们发布的数组称为User。在php中我检索发布的数组,如下所示:

print_r($HTTP_POST_VARS["User"]); 

然后输出数组如下:

Array ( [0] => Me [1] => You [2] => SomeoneElse ) 

数组中的所有数据都是复选框。你可以做一个

foreach (​​​​​​​ $HTTP_POST_VARS["User"] as $key => $value) { $key is 0, $value is Me. and so on } 

希望这有帮助 -

答案 2 :(得分:0)

$_POST已经是form集内所有内容的数组。使用此选项可在复选框上执行“特定操作”。如果由于某种原因你需要不同变量中的信息,那么只需循环遍历$_POST并将其放入不同的变量中,如下所示:

while ($row = $_POST) {
   $new_var[] = $row[0];
}

那应该适合你放入一个新的/不同的数组但坦率地说,我没有看到它的重点,因为它已经是一个数组。

至于理解$ _POST数组的样子,那么var_dump()就可以了。该复选框的名称将是[]中的名称,该值将显示在=>之后。因此,如果您的输入名为name=box1且值为value=1,那么从$_POST角度来看,数组看起来像[box1] => 1,因此您可以通过调用来使用此部分它特别喜欢$foo = $_POST['box1']$foo的值将是box1的值,或者你可以通过调用它来做任何你想做的事情(而不是放入一个新的变量)。

相关问题