根据表格中的单元格值隐藏按钮

Posted

技术标签:

【中文标题】根据表格中的单元格值隐藏按钮【英文标题】:Hiding a button dependant on cell value in table 【发布时间】:2021-12-31 03:06:33 【问题描述】:

我目前有一个表格,该表格的末尾带有几个按钮来报告数据,以执行操作(委托、取消委托、编辑、删除)。我正在尝试根据列的 Yes/No 值隐藏表格中每一行的 Consign 和 Unconsign 按钮。

到目前为止,如果委托单元格为“是”,我已经设法隐藏“委托”按钮。问题是对于返回 No 的单元格,Consign 按钮仍然隐藏,Unconsign 按钮仍然显示。解决此问题的最佳方法是什么?

这是到目前为止的代码和示例。

<thead>
     <tr>
       <th data-checkbox="true"></th>
       <th data-field="no" data-sortable="true" data-sorter="dateSorter" data-visible="false">No</th>
       <th data-field="location" data-sortable="true" data-filter-control="select" data-filter-control-placeholder="Select Location">Location</th>
       <th data-field="name" data-visible="false">Name</th> 
       <th data-field="area" data-visible="false">Area</th>
       <th data-field="sendto" data-visible="false">Send To</th>        
       <th data-field="reference">Reference</th>
       <th data-field="consigned" data-filter-control="select" data-filter-default="No">Consigned</th>
       <th data-field="date_consigned" data-visible="false">Date Consigned</th>
       <th data-field="action" class="col-lg-2">Action</th>
     </tr>
</thead>
<tbody> 
<?php

        if ($result->num_rows > 0) 
            while($row = $result->fetch_assoc()) 
              echo '<tr>';
              echo '<td></td>';             
              echo '<td>'.$row["no"].'</td>';
              echo '<td>'.$row["location"].'</td>';
              echo '<td>'.$row["name"].'</td>'; 
              echo '<td>'.$row["area"].'</td>';     
              echo '<td>'.$row["sendto"].'</td>';
              echo '<td>'.$row["reference"].'</td>';
              echo '<td>'.$row["consigned"].'</td>';
              echo '<td>'.$row["date_consigned"].'</td>';
                if ($value['consigned'] != 'Yes') 
              echo "<td>
                        <a href='#consign_".$row['no']."' class='btn btn-warning btn-sm hide' data-toggle='modal' id='consign' name='consign'><span class='glyphicon glyphicon-check'></span> Consign</a>
                        <a href='#unconsign_".$row['no']."' class='btn btn-warning btn-sm' data-toggle='modal' id='unconsign' name='unconsign'><span class='glyphicon glyphicon-check'></span> Unconsign</a>                            
                        <a href='#edit_".$row['no']."' class='btn btn-success btn-sm' data-toggle='modal'><span class='glyphicon glyphicon-edit'></span> Edit</a>
                        <a href='#delete_".$row['no']."' class='btn btn-danger btn-sm' data-toggle='modal'><span class='glyphicon glyphicon-trash'></span> Delete</a>
                    </td>";
                 else 
              echo "<td>
                        <a href='#consign_".$row['no']."' class='btn btn-warning btn-sm' data-toggle='modal' id='consign' name='consign'><span class='glyphicon glyphicon-check'></span> Consign</a>
                        <a href='#unconsign_".$row['no']."' class='btn btn-warning btn-sm hide' data-toggle='modal' id='unconsign' name='unconsign'><span class='glyphicon glyphicon-check'></span> Unconsign</a>                           
                        <a href='#edit_".$row['no']."' class='btn btn-success btn-sm' data-toggle='modal'><span class='glyphicon glyphicon-edit'></span> Edit</a>
                        <a href='#delete_".$row['no']."' class='btn btn-danger btn-sm' data-toggle='modal'><span class='glyphicon glyphicon-trash'></span> Delete</a>
                    </td>";
                
              echo "</tr>";
                include('edit-delete-modal.php');
              echo "</tr>";
            
          
?>

Image of table buttons

编辑:建议here 对我不起作用,因为这是一个带有更多变量而不是单个div 的php 表的问题。我已经设法隐藏了我想要实现的部分内容,因此我知道我的代码在一定程度上可以工作,并且建议的解决方案不会为我实现这一点,因为它会隐藏所有内容。

【问题讨论】:

if ($value['consigned'] != 'Yes') 看起来很奇怪。我怀疑字符串“是”是否存储在其中(至少我希望不是);尝试将该行更改为if (!$row['consigned']) ,看看是否可以解决它。如果没有,则显示一些var_dump($row); 输出。 ($value;应该是 $row @Raxi 感谢您的回复 - 这与下面发布的答案一起完美运行。谢谢! 【参考方案1】:

我在你的逻辑中发现了一些东西(if 语句)

 if ($value['consigned'] != 'Yes')  // true when $value['consigned'] is No
          echo "<td>
                    <a href='#consign_".$row['no']."' class='btn btn-warning btn-sm hide' data-toggle='modal' id='consign' name='consign'><span class='glyphicon glyphicon-check'></span> Consign</a>
                    <a href='#unconsign_".$row['no']."' class='btn btn-warning btn-sm' data-toggle='modal' id='unconsign' name='unconsign'><span class='glyphicon glyphicon-check'></span> Unconsign</a>                            
                    <a href='#edit_".$row['no']."' class='btn btn-success btn-sm' data-toggle='modal'><span class='glyphicon glyphicon-edit'></span> Edit</a>
                    <a href='#delete_".$row['no']."' class='btn btn-danger btn-sm' data-toggle='modal'><span class='glyphicon glyphicon-trash'></span> Delete</a>
                </td>";
             else 
          echo "<td>
                    <a href='#consign_".$row['no']."' class='btn btn-warning btn-sm' data-toggle='modal' id='consign' name='consign'><span class='glyphicon glyphicon-check'></span> Consign</a>
                    <a href='#unconsign_".$row['no']."' class='btn btn-warning btn-sm hide' data-toggle='modal' id='unconsign' name='unconsign'><span class='glyphicon glyphicon-check'></span> Unconsign</a>                           
                    <a href='#edit_".$row['no']."' class='btn btn-success btn-sm' data-toggle='modal'><span class='glyphicon glyphicon-edit'></span> Edit</a>
                    <a href='#delete_".$row['no']."' class='btn btn-danger btn-sm' data-toggle='modal'><span class='glyphicon glyphicon-trash'></span> Delete</a>
                </td>";
            
          echo "</tr>";
            include('edit-delete-modal.php');
          echo "</tr>";
        

建议:

修改 if 语句

$value['consigned'] == 'Yes'

【讨论】:

非常感谢。我与 Raxi 在问题下方的 cmets 中建议的更改一起进行了此更改,现在它正在工作。谢谢! 在循环内,您不能允许 html 文档具有重复的 id 属性。当您只想有条件地打印 hide 时,不要重复整行标记。

以上是关于根据表格中的单元格值隐藏按钮的主要内容,如果未能解决你的问题,请参考以下文章

通过单击编辑按钮编辑表格单元格值 - React

根据 Python HTML 电子邮件中的单元格值将 HTML 表格单元格从“低到高颜色阴影”着色

如何通过 JavaScript 获取 html 表格 td 单元格值?

Google表格,根据包含公式的单元格值添加行

如何根据列和行中提供的条件查找表格单元格值?

谷歌表格 - 根据公式内的另一个单元格值设置行号?