2016-07-28 103 views
1

我從數據庫中檢索信息,並創建一個表格。 我有一個列名稱狀態,它的幾乎所有值都等於'A'。 雖然有些值等於'C',但有些值。我希望狀態欄等於'C'的背景色爲紅色。在表格行中搜索COLUMN和HIGHLIGHT中的特定文本

我的代碼似乎不工作,我認爲是JavaScript的一部分。

任何幫助,歡迎。

我的代碼是這樣的:

<thead> 

    <tr> 
     <th>Dongle</th> 
     <th>ActDate</th> 
     <th>ModDate</th> 
     <th>Client</th> 
     <th>Company</th> 
     <th>Activation</th> 
     <th>Comments</th> 
     <th>Status</th> 
    </tr> 

</thead> 

<SCRIPT type="text/javascript"> 

$(document).ready(function(){ 
    $('table tr').each(function(){ 
     if($(this).find('td').eq(3).text() == 'C'){ 
      $(this).css('background','red'); 
     } 
    }); 
}); 

</SCRIPT> 

<?php 

$queryString = $_SESSION['clientid']; 

$Server = "212.50.99.130\sqlexpress"; 
$user = "sa"; 
$password = "sql"; 

$database = "Licenses"; 
$connectionInfo = array("Database"=>$database,"UID"=>$user, "PWD"=>$password); 
$link = sqlsrv_connect($Server, $connectionInfo); 

if ($link === false) { 
    echo "Connection failed. \n"; 
    die(print_r(sqlsrv_errors(), true)); 
}         

$Reseller = $_SESSION["Seller"]; 

$strSQLSel= "SELECT Dongle AS Dongle, ActDate AS ActDate, 
      ModDate AS ModDate, Client AS Client, Company AS Company, 
      Activation AS Activation, 
      Comments AS Comments, Status AS Status 
      FROM Licenses 
      WHERE Reseller = '$Reseller' 
      GROUP BY Dongle,ActDate,ModDate,Client,Company,Activation,Comments,Status"; 

$result = sqlsrv_query($link,$strSQLSel); 
While ($row = sqlsrv_fetch_array($result,SQLSRV_FETCH_ASSOC)){ 

?> 

<tbody> 
    <tr> 
     <td><p><?php echo $row['Dongle']; ?></p></td> 
     <td><p><?php echo date_format($row['ActDate'],'Y-m-d'); ?></p></td> 
     <td><p><?php echo date_format($row['ModDate'],'Y-m-d'); ?></p></td> 
     <td><p><?php echo $row['Client']; ?></p></td> 
     <td><p><?php echo $row['Company']; ?></p></td> 
     <td><p><?php echo $row['Activation']; ?></p></td> 
     <td><p><?php echo $row['Comments']; ?></p></td> 
     <td><p><?php echo $row['Status']; ?></p></td> 
    </tr> 

<?php 
    } 
?> 

</tbody> 
</table> 
+0

'>

<?php echo $ row ['Status'];?>

' – splash58

+0

更改'if($(this).find('td')。 eq(3).text()=='C'){'to'if($(this).find('td:last-child p')。text()=='C'){'and move ''out of while loop。 –

+0

沒有沒有工作,但謝謝你嘗試 –

回答

0

CSS:

tr.red-status {background-color: red;} 

PHP模板,表TBODY:

<tbody> 
    <?php 
    $result = sqlsrv_query($link, $strSQLSel); 
    while ($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) : 
    ?> 
     <tr class="<?php echo ($row['Status'] == 'C') ? 'red-status' : '' ?>"> 
      <td><p><?php echo $row['Dongle']; ?></p></td> 
      <td><p><?php echo date_format($row['ActDate'],'Y-m-d'); ?></p></td> 
      <td><p><?php echo date_format($row['ModDate'],'Y-m-d'); ?></p></td> 
      <td><p><?php echo $row['Client']; ?></p></td> 
      <td><p><?php echo $row['Company']; ?></p></td> 
      <td><p><?php echo $row['Activation']; ?></p></td> 
      <td><p><?php echo $row['Comments']; ?></p></td> 
      <td><p><?php echo $row['Status']; ?></p></td> 
     </tr> 
    <?php endwhile; ?> 
</tbody> 
+0

它有點工作。值狀態中的字母'C',但只有其中一個變爲紅色 –

+0

「狀態」中是否有更多空格?也許使用修剪功能:'<?php echo(trim($ row ['Status' ])=='C')?'red-status':''?>' –

+0

不,我沒有空格,我用過修剪但仍然只有兩個中的一個 –

0

更改您的代碼以

<tbody> 
while ($row = sqlsrv_fetch_array($result,SQLSRV_FETCH_ASSOC)){ 
$cls = ($row['Activation']=='C') ? "style='background-color:red'" : ""; 
?> 


    <tr <?php echo $cls;?>> 
     <td><p><?php echo $row['Dongle']; ?></p></td> 
     <td><p><?php echo date_format($row['ActDate'],'Y-m-d'); ?></p></td> 
     <td><p><?php echo date_format($row['ModDate'],'Y-m-d'); ?></p></td> 
     <td><p><?php echo $row['Client']; ?></p></td> 
     <td><p><?php echo $row['Company']; ?></p></td> 
     <td><p><?php echo $row['Activation']; ?></p></td> 
     <td><p><?php echo $row['Comments']; ?></p></td> 
     <td><p><?php echo $row['Status']; ?></p></td> 
    </tr> 

<?php 
    } 
?> 
+1

移動 out while循環。 –

+1

@ThinkDifferent - 謝謝 - 我錯過了那一個:-) – jeff

0

嘗試:

<tr style='<?php echo ($row["Status"] == "C") ? "background-color: red" : "" ?>'> 
    <td><p><?php echo $row['Dongle']; ?></p></td> 
    <td><p><?php echo date('Y-m-d', $row['ActDate']); ?></p></td> 
    <td><p><?php echo date('Y-m-d', $row['ModDate']); ?></p></td> 
    <td><p><?php echo $row['Client']; ?></p></td> 
    <td><p><?php echo $row['Company']; ?></p></td> 
    <td><p><?php echo $row['Activation']; ?></p></td> 
    <td><p><?php echo $row['Comments']; ?></p></td> 
    <td><p><?php echo $row['Status']; ?></p></td> 
</tr> 
0
EASY TO USE AND VERY SIMPLE: 

$(document).ready(function() { 
      $(".searchCls").val(""); 
      //Script to search item group in table 
      $('.searchCls').keyup(function() { 
       var inputval = $(this).val(); 
       var table = $('#WBSTreeList'); 
       var search = $('.searchCls'); 
       if(inputval != '' && inputval != null){ 
       table.find('tr').each(function (index, row) { 
        var allCells = $(row).find('td'); 
        if (allCells.length > 0) { 
         var found = false; 
          allCells.each(function (index, td) { 
           var regExp = new RegExp(inputval, 'i'); 
           if (regExp.test($(td).text())) { 
            found = true; 
            return false; 
           } 
          }); 
          if (found == true) { 
           $(row).show().addClass('match'); 
          } 

          else { 
           $(row).hide(); 
          } 
        } 
       }); 
       } 
       else { 
        table.find('tr').each(function (index, row) { 
         $(row).show().removeClass('match'); 
        }); 
       } 
      }); 
     }); 

    HTML: 
    <input type="text" id="searchtxt" class="searchCls width-100" placeholder="Search ..."> 

    <div class="col-sm-12 col-xs-12 table-responsive"> 
     <table id="WBSTreeList" class="table table-bordered width-100"> 
      <thead> 
       <tr> 
        <th></th> 
        <th></th> 
       </tr> 
      </thead> 
      <tbody> 
    <tr> 
    <td> 
    </td> 
    </tr> 
    </tbody> 
    </table> 
    </div> 
相關問題