【问题标题】:Check bootstrap table row - Javascript检查引导表行 - Javascript
【发布时间】:2015-04-09 12:41:19
【问题描述】:

我需要根据存储在数据库中的值选中/取消选中表格复选框。我不是一个有经验的程序员。我已经用谷歌搜索了一整天,没有运气。希望有人能帮助我。

代码如下:

echo "<table data-toggle='table' data-click-to-select='true' id='potable'>";
echo "<thead>";
echo "<tr>";
echo "<th data-field='state' data-checkbox='true'></th>";
echo "<th data-field='code'>Code</th>";
echo "<th data-field='description'>Description</th>";
echo "<th data-field='verb'>Verb</th>";
echo "<th>Actions</th>";
echo "</tr>";
echo "</thead>";
echo "<tbody>";
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
    extract($row);
    echo "<tr>";
    echo "<td>"; ?>
    <script>
        var select = <?php echo "{$selected}"; ?>;
        if (select == 1) {
// INSERT HERE JAVASCRIPT LINE THAT CHECKS THE CURRENT CHECKBOX
        else { 
//UNCHECK THE CURRENT CHECKBOX
        }
    </script>
    <?php
    echo "</td>";
    echo "<td>{$code}</td>";
    echo "<td>{$description}</td>";
    echo "<td>{$verb}</td>";
    echo "<a type='button' class='btn btn-primary left-margin' href='po-info.php?id={$id}'>Info</a>";
    echo "</td>";
    echo "</tr>";                                           
}
echo "</tbody>";
echo "</table>";

【问题讨论】:

  • 你的复选框在哪里?
  • 在这里:echo "";此行为每个表格行添加一个复选框
  • 您使用哪些工具在这些行中创建复选框?能否请您将 DOM 代码发送给我们,您可以使用 $("th[data-checkbox='true'] input[type=checkbox]") 访问它吗?
  • 来自 Twitter Boostrap 和 bootstrap-table (bootstrap-table.wenzhixin.net.cn)

标签: javascript php checkbox html-table


【解决方案1】:

试试

$("th[data-checkbox='true'] input[type=checkbox]").attr('checked', <?=$selected?'true':'false'?>);

【讨论】:

  • 谢谢你,但不幸的是没有结果
  • 你知道,我可以用这条线计算检查的行数:var countchecked = $('#' + tableID).find('input[type="checkbox"]:checked').length;
【解决方案2】:
 <table>
 <?php
 while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
  extract($row);

  $checked_ids = array();
  $checked_ids[] = $id;
  $chk_str = '<input data-index="%s" name="chk" type="checkbox">';
  echo "<tr>";
  echo "<td>";
  printf($chk_str, $id);
  echo "</td>";
  echo "</tr>";

 } 
 ?>
 </table>
 <input type="hidden" id="db_checked" value="<?php echo implode(",",$checked_ids); ?>" />
 <script>
  // need jquery.js
  $(function () {
      var $table = $('#potable'),
      var string = $('#db_checked').val();
      var array = string.split(',');
      for (var ck_id in array) {
       $table.bootstrapTable('check', parseInt(ck_id, 10));
        // check or uncheck
      }
  }
  </script>

也许“数据索引”写在“tr”标签上

【讨论】:

  • 我知道我可以这样做,但这不是我想要的。无论如何谢谢你;)
  • 修改函数 stateFormatter(value, row, index) { return { checked: (value == 1) } }
【解决方案3】:

终于成功了 二手

echo "<th data-field='selected' data-checkbox='true' data-formatter='stateFormatter'></th>";

然后

<script>
  function stateFormatter(value, row, index) {
    if (value == 1) {
      return {
        checked: true
      };
    } else {
      return {
        checked: false
      };
    }
    return value;
  }
</script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-30
    • 2014-05-29
    • 2021-03-08
    • 2014-01-08
    • 1970-01-01
    相关资源
    最近更新 更多