【问题标题】:Rowspan table if values is the same in PHP如果 PHP 中的值相同,则行跨度表
【发布时间】:2020-07-01 12:25:43
【问题描述】:
<?php
        $id=$_POST['itinerary_id'];
        $query=mysql_query("select * from tblitinerarydetails where tblid='$id' order by date_of_travel asc");
        $i = 0;
        $prevValue = NULL;
        while($rows=mysql_fetch_array($query)){
            $date=$rows['date_of_travel'];
            $mydate = strtotime($date);
            $newdate = date('F j, Y', $mydate);
            $activities=$rows['activities'];
            $time_departure=$rows['time_departure'];
            $time_arrival=$rows['time_arrival'];
            $new_time_departure = date('g:i A', strtotime( $time_departure));
            $new_time_arrival = date('g:i A', strtotime( $time_arrival));
            $means_of_transportation= $rows['means_of_transportation'];
            $travelling_allowance = number_format($rows['travelling_allowance'],2);
            $destination = $rows['destination'];    
            $i++;
            echo "<tr>";
            if ($newdate == $prevValue) {
                echo "<td align='left' rowspan='$i'>$prevValue</td>";
             }
            $prevValue = $newdate;

            echo "<td align='left'>$destination</td>";
            echo "<td align='center'>$new_time_departure</td>";
            echo "<td align='center'>$new_time_arrival</td>";
            echo "<td align='center'>$activities</td>";
            echo "<td align='center'>$means_of_transportation</td>";
            echo "<td align='right'>$travelling_allowance</td>";
            echo "</tr>";
        }
?>

如果值相同,我只想在我的表中添加行跨度。让我们这样说:

我希望 2 月 4 日的所有日期都是分组的,并且只会出现一次(行跨度)。

【问题讨论】:

  • 你的 HTML 结构错了吗?
  • 是的,rowspan 搞砸了。
  • if ($newdate == $prevValue) false 尝试其他条件。 else{ echo "$newdate"; }

标签: php html-table


【解决方案1】:
Try with jQuery - 

<table border=1 id="myTable">
    <tr>
        <td>A</td>
        <td>1</td>
    </tr>
    <tr>
        <td>A</td>
        <td>2</td>
    </tr>
    <tr>
        <td>b</td>
        <td>1</td>
    </tr>
    <tr>
        <td>c</td>
        <td>1</td>
    </tr>  
    <tr>
        <td>c</td>
        <td>1</td>
    </tr>
</table>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
    $(document).ready(function() {
       var span = 1;
       var prevTD = "";
       var prevTDVal = "";
       $("#myTable tr td:first-child").each(function() { //for each first td in every tr
          var $this = $(this);
          if ($this.text() == prevTDVal) { // check value of previous td text
             span++;
             if (prevTD != "") {
                prevTD.attr("rowspan", span); // add attribute to previous td
                $this.remove(); // remove current td
             }
          } else {
             prevTD     = $this; // store current td 
             prevTDVal  = $this.text();
             span       = 1;
          }
       });
    });
</script>

输出:

【讨论】:

  • 为什么它不适用于 PHP 生成的行?
  • 你添加了jquery库吗?
  • 啊!我添加了图书馆!谢谢。我犯了一些拼写错误。
  • 这很好用,虽然在使用数据库时,它只适用于第一页,分页后不起作用。请任何人帮忙。提前致谢
【解决方案2】:

它可以作为文本使用,但不能与

一起使用
<img src='picture/".$row["j_pic"]."' width='90' height='90' border='0' />

怎么做?

【讨论】:

    猜你喜欢
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-02
    • 2021-04-27
    • 1970-01-01
    相关资源
    最近更新 更多