根据表格中的单元格值隐藏按钮
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
时,不要重复整行标记。以上是关于根据表格中的单元格值隐藏按钮的主要内容,如果未能解决你的问题,请参考以下文章
根据 Python HTML 电子邮件中的单元格值将 HTML 表格单元格从“低到高颜色阴影”着色