Bootstrap数据表无法添加手风琴

时间:2018-06-11 08:47:16

标签: php jquery datatable html-table accordion

我有一个数据表如下:

foreach($tickets as $tickets)
{
    echo ('<tr>');
    echo ('<td>'.$tickets->error.'</td>');
    echo ('<td>'.$tickets->hours.'</td>');
    echo ('<td>'.$tickets->time.'</td>');
    echo ('<td>'.$tickets->date.'</td>');
    echo ('</tr>');
}

我同样添加了手风琴效果:

foreach($tickets as $tickets)
{
    echo ('<tr data-toggle="collapse" data-target=".demo1">');
    echo ('<td>'.$tickets->error.'</td>');
    echo ('<td>'.$tickets->hours.'</td>');
    echo ('<td>'.$tickets->time.'</td>');
    echo ('<td>'.$tickets->date.'</td>');
    echo ('</tr>');
    echo ('<tr>');
    echo ('<td class="hiddenRow">');
    echo ('<div class="collapse demo1">Demo1</div>');
    echo ('</td>');
    echo ('</tr>');
}

并且该表丢失了它的数据表属性,例如搜索,每页查看10/25/50项等。

enter image description here

Jquery的:

$('.collapse').on('show.bs.collapse', function () {
    $('.collapse.in').collapse('hide');
});

$(".clickable-row").click(function() {
    window.location = $(this).data("href");
});

我想帮助解决这个问题。

2 个答案:

答案 0 :(得分:0)

尝试使用colspan =&#34; 4&#34;在第二个td

答案 1 :(得分:0)

这是小提琴:http://jsfiddle.net/3ghbLrpu/1/

<html>

  <head>

    <script src="js/jquery-1.12.4.js"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
    <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>

  </head>

  <body>

    <table id="dataTable" class="table table-striped table-bordered" cellspacing="0" width="100%">
      <thead>
        <tr>
          <th>Error</th>
          <th>Time Spent</th>
          <th>Time</th>
          <th>Date</th>
        </tr>
      </thead>
      <tfoot>
        <tr>
          <th>Error</th>
          <th>Time Spent</th>
          <th>Time</th>
          <th>Date</th>
        </tr>
      </tfoot>
      <tbody>
        <tr data-toggle="collapse" data-target=".demo1" class="accordion-toggle">
          <td>asd</td>
          <td>asd</td>
          <td>asd</td>
          <td>asd</td>
        </tr>
        <tr>
          <td class="hiddenRow" colspan="4">
            <div class="collapse demo1">Demo1</div>
          </td>
        </tr>
      </tbody>
    </table>

  </body>

<强> CSS

.hiddenRow {
    padding: 0 !important;
}

另一种选择是使用bootstrap并删除knockoutjs

https://codepen.io/creativedev/pen/XYMRyQ

$(document).ready(function() {
  $("#collapseme").click(function() {
    if($("#test").hasClass("out")) {
        $("#test").addClass("in");
        $("#test").removeClass("out");
    } else {
        $("#test").addClass("out");
        $("#test").removeClass("in");
    }
});
});

<强> HTML

<table id="dataTable" class="table table-striped table-bordered" cellspacing="0" width="100%">
      <thead>
        <tr>
          <th>Error</th>
          <th>Time Spent</th>
          <th>Time</th>
          <th>Date</th>
        </tr>
      </thead>
      <tbody>
        <tr class="" id="collapseme">
          <td>asd</td>
          <td>asd</td>
          <td>asd</td>
          <td>asd</td>
        </tr>
        <tr>
          <td class="hiddenRow" colspan="4">
            <div class="collapse out" id="test">Demo1</div>
          </td>
        </tr>
  </tbody>

      <tfoot>
        <tr>
          <th>Error</th>
          <th>Time Spent</th>
          <th>Time</th>
          <th>Date</th>
        </tr>
      </tfoot>
    </table>