首页 > 解决方案 > 我想根据文本值更改表格循环中文本的颜色

问题描述

我有一个循环table显示下拉表单帖子(lotstatus)的结果。我希望能够color根据value它们selectedform.

if($result = mysqli_query($conn, $sql)){ if(mysqli_num_rows($res) > 0){ echo "
<table class='table table-bordered table-striped' width='100%' data-pagination='true' data-search='true'>"; echo "
  <thead>"; echo "
    <tr>"; echo "
      <th>Status</th>"; echo "
      <th>Street #</th>"; echo "
      <th>Street Name</th>"; echo "
      <th>City</th>"; echo "
      <th>Parcel ID</th>"; echo "
      <th>Lot # (Unit)</th>"; echo "
      <th>Contract Signed Date</th>"; echo "
      <th>Closing Date</th>"; echo "
      <th>Action</th>"; echo "</tr>"; echo "</thead>"; echo "
  <tbody>"; while($row = mysqli_fetch_array($res)){ echo "
    <tr>"; echo "
      <td>" . "
        <div class='statuscolor'>". $row['lotstatus'] . "</div>". "</td>"; echo "
      <td>" . $row['streetnumber'] . "</td>"; echo "
      <td>" . $row['streetname'] . "</td>"; echo "
      <td>" . $row['city'] . "</td>"; echo "
      <td>" . $row['parcelid'] . "</td>"; echo "
      <td>" . $row['lotnumber'] . "</td>"; echo "
      <td>" . $row['contractsigneddate'] . "</td>"; echo "
      <td>" . $row['closingdate'] . "</td>"; echo "
      <td>"; echo "<a class='btn btn-info mr-2 mt-2' href='readLot.php?id=". $row[' id '] ."' title='View' data-toggle='tooltip'><span style='margin-left: 7px;' class='la la-file-o ks-icon'></span></a>"; echo "<a class='btn btn-warning mr-2 mt-2' href='updateLot.php?id=". $row['
          id '] ."' title='Edit ' data-toggle='tooltip'><span style='margin-left: 7px;' class='la la-pencil ks-icon'></span></a>"; echo "
        <a class='btn btn-danger mt-2' href='deleteLot.php?id=". $row[' id '] ."' title='Delete ' data-toggle='tooltip'><span style='margin-left: 7px;' class='la la-close ks-icon'></span></a>"; echo "</td>"; echo "</tr>"; } echo "</tbody>"; echo "</table>";
// Free result set mysqli_free_result($result); } else{ echo "
<p class='lead'><em>No Lots were found.</em></p>"; } }

在我使用的表格中:用户选择批次状态 - 我想根据他们选择的内容更改状态的颜色。

<select class="form-control" value="<?php echo $lotstatus; ?>" id="lotstatus" name="lotstatus">
  <option value="NA">N/A</option>
  <option value="Executed">Executed</option>
  <option value="Not Interested">Not Interested</option>
  <option value="Hold">Hold</option>
  <option value="Title Ordered">Title Ordered</option>
  <option value="Vetting">Vetting</option>
  <option value="Survey Ordered">Survey Ordered</option>
  <option value="Lean Search Ordered">Lean Search Ordered</option>
  <option value="Clear to Close">Clear to Close</option>
  <option value="Closed">Closed</option>
</select>

我尝试设置选项值的样式,并尝试选择字段的 text() 值。没有任何工作...帮助!

标签: javascriptphpjquerycss

解决方案


首先,您需要为每一行添加状态:

<tr class=\"Executed\">"; echo "
<tr class=\"Hold\">"; echo "

<table>使用 JS,您可以将所选状态添加到父级:

$('select#lotstatus').on('change', function() {
  $('table').attr('status', $(this).val());
});

然后,在您的 css 中,您需要为每个状态设置所需的颜色:

table[status="Executed"] tr.Executed .statuscolor { color: red; }
table[status="Hold"] tr.Hold .statuscolor { color: green; }
table[status="Closed"] tr.Closed .statuscolor { color: yellow; }

也许您需要在表中添加一个“id”以避免与其他表的干扰。


推荐阅读