如何在javascript中获取复选框值

时间:2012-03-29 20:25:36

标签: php javascript ajax

我想为复选框设置更多值,怎么做?这是我的代码:从这段代码中我只能获得3个值,为什么?我想得到5个值。这样做吗?

$results=$watch.",".$thumbnail.",".$name.",".$description.",".$val;
<input type="checkbox" name="checkbox[]" id="checkbox[]" class="addbtn"  value=<?php echo  $results;?>

javascript fn:

  function chkbox()
  { 
 $('[name^=checkbox]:checked').each(function() {

 var ckballvalue=($(this).val());  

 var latlngStrs = ckballvalue.split(",",5);
 var link = latlngStrs[0];
 var thumbnail = latlngStrs[1];
 var name = latlngStrs[2];
 var description = latlngStrs[3];
 var categ = latlngStrs[4];

 alert(link+thumbnail+name+description+categ);
   }

2 个答案:

答案 0 :(得分:1)

假设您的标记正确并且您正在使用POST,那么您只需从PHP中的$_POST变量中获取它们。

$checkedValues = $_POST['checkbox'];

这将是所有选中值的数组,其中'checkbox'是输入组的名称。

答案 1 :(得分:1)

当浏览器发布包含复选框的表单时,它仅为已选中的复选框发布任何内容。未经检查的那些根本不会被发送。

因此,如果您有五个复选框,但只检查了三个,则PHP $ _POST或$ _GET数组将只包含这三个的条目,而不是其他两个。

这也意味着如果您对所有复选框使用name="checkbox[]",那么您的数组元素将不会按预期编号。

请注意,这是HTML表单的工作方式;它与PHP无关。

如果你想强制它,你可以在表单上有一个隐藏字段,它使用Javascript镜像复选框状态。通过这种方式,您可以确定无论是否已选中,您都可以获得发布给您的价值。

或者你可以接受它的工作方式。如果没有选中,您可能无法获得发布给您的值,但是他们的缺席就足够了,因为没有发布这些字段可以让您知道他们没有被选中。

您可能会发现,给复选框显式数组元素键(即name="checkbox[]"而不是name="checkbox[3]")会有用{{1}}。这样,它们将始终发布到$ _POST数组的右侧插槽中。

希望有所帮助。