如何获取复选框的值并使用JavaScript将其放入数组中?

时间:2016-03-30 12:13:53

标签: javascript php jquery checkbox

我有这样的情况:

enter image description here

我需要做的是获取所有选中的复选框的值,然后将它们放在一些JavaScript array中,最后放在PHP session中。我有这样的代码:

    while($userRow=$resultForUsers->fetch_assoc()){
          $nameOfUser=$userRow['users_name'];
          $userId=$userRow['user_facebook_id'];
          $userFBPicture=$userRow['users_picture'];
          echo "
          <tr class='tr-data-users'>
          <td class='text-center'>
          <input type='checkbox' class='checkbox' value=$userId>
          </td>
          <td class='td-users text-center'>
          <div class='input-group user-name-users'>
          <img class='user-img-users v-t' src=$userFBPicture>
          </div>
          <div class='input-group user-name-users'>
          <h5 id='no-margin'>$nameOfUser</h5>
          </div>
          <div class='input-group user-name-users'>
          <img class='v-t' src='../img/link-icon.png'>
          </div>
          </td>
          <td>
          <p class='text-center'>$userId</p>
          </td>
          <td>
          <p class='text-center'>113</p>
          </td>
          <td>
          <p class='text-center'>19</p>
          </td>
          <td>
          <p class='text-center'>19</p>
          </td>
          <td>
          <p class='text-center'>39%</p>
          </td>
          <td>
          <p class='text-center'>31.12.2013</p>
          </td>
          </tr>";
}?>

因此,对于我的数据库中的每个用户,我正在生成一行,如上所示,但每个复选框的值都有用户的ID。

<td class='text-center'>
              <input type='checkbox' class='checkbox' value=$userId>
</td>

我没有尝试任何东西,因为我不知道从哪里开始。非常感谢你对此的帮助。

3 个答案:

答案 0 :(得分:0)

您可以使用jquery中的:checked选择器获取所有选中的复选框:

var userIds = $.map($('input[type=checkbox]:checked'), function (cb, idx) {
    // here you have the checkbox and you can get the value attribute
    return $(cb).attr('value');
});

或者,您可以在jquery元素上使用.map

var userIds = $('input[type=checkbox]:checked').map(function () {
    // here this referes to the checkbox and you can get the value attribute
    return $(this).attr('value');
});

答案 1 :(得分:0)

你可以使用如下的jquery来做到这一点,

var allVals = [];  
        $(".checkbox:checked").each(function() {  
            allVals.push($(this).val());
        });  

答案 2 :(得分:0)

试试这个;)

&#13;
&#13;
function showChecked(){
  var userIds = $.map($('input[type=checkbox]:checked'), function (cb, idx) {
    /* here you have the checkbox and you can get the value attribute */
    return $(cb).val();
  });
  console.log(userIds);
  $('#checkedItems').html(userIds.join(', '));
  
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<td class='text-center'>
              1 <input type='checkbox' class='checkbox' value="1">
</td>
<td class='text-center'>
              2 <input type='checkbox' class='checkbox' value="2">
</td>
<td class='text-center'>
              3 <input type='checkbox' class='checkbox' value="3">
</td>
<td class='text-center'>
              4 <input type='checkbox' class='checkbox' value="4">
</td>

<a href="javascript:showChecked();">Show Checked</a>

<div id="checkedItems"></div>
&#13;
&#13;
&#13;