使用来自DB的值使用php自动突出显示

时间:2018-05-28 16:24:39

标签: javascript jquery css

我在同一页面上有五个(有时是7,8等)php生成的小HTML表,每个表都有不同的<table id="">。我有关于mysql表的数据,其中唯一的ID与html表id相同。

我需要的是每个html表匹配值要用具有相同表id的mysql表行的值突出显示。

因此,我不需要使用带有多个选择器值的复选框,而是需要在不单击任何复选框的情况下自动完成。通常使用复选框,我使用类似这样的内容:https://jsfiddle.net/zt54jqtL/ 谢谢!

<div>

<form id="form1" name="form1" method="post" action="">
    <label>
        <input type="checkbox" name="SelectAll" class="all" />All</label>
    <label>
        <input type="checkbox" name="2" class="selector" />2</label>
    <label>
        <input type="checkbox" name="7" class="selector" />7</label>
    <label>
        <input type="checkbox" name="7" class="selector" />7</label>

</form>

PHP代码:

 <?php

$conn=mysqli_connect("localhost","root","","Mdata");

if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }


function print_tableX ($conn, $id) {
    $sql = "SELECT Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8 FROM tableA";
    $result = $conn->query($sql);
    if ($result->num_rows > 0) {
        echo "<table id='$id'>";
        while($row = $result->fetch_assoc()) {
            echo '<tr><td>' . join('</td><td>', $row) . "</td></tr>\n" ;
        }
        echo "</table>";
    }
}  


$result = $conn->query("SELECT sID from tableB");
while ($row = $result->fetch_assoc()) {
    print_tableX ($conn, $row['sID']);
}

?>

1 个答案:

答案 0 :(得分:1)

我不确定我是否正确理解了这个问题。此外,从您的代码中我无法理解哪些行必须突出显示。

让我们说这是生成的HTML:

<table id="tab1">
    <tr data-dbval="3"><td>Value</td><td>3</td></tr>
    <tr data-dbval="5"><td>Value</td><td>5</td></tr>
    <tr data-dbval="8"><td>Value</td><td>8</td></tr>
 </table>

 <table id="tab2">
    <tr data-dbval="2"><td>Value</td><td>2</td></tr>
    <tr data-dbval="7"><td>Value</td><td>7</td></tr>
    <tr data-dbval="8"><td>Value</td><td>8</td></tr>
 </table>

这是一个带有行引用的javascript对象:

<script>
    var defaultValue={"tab1":["3","8"],"tab2":["7"]}
</script>

此jquery代码获取每个表突出显示的值,并向tr元素添加“highlight”类:

$(document).ready(function() {

  $.each(defaultValue,function(k,v){
    var $tab=$("table#"+k);
    if($tab.length>0){
        $.each(v,function(k1,v1){
        $tab.find("tr[data-dbval='"+v1+"']").addClass("highlight");
      })
    }
  })

});

https://jsfiddle.net/moc5sq4w/

要从PHP生成JS对象,你可以使用它(这是丑陋的嵌入式php)。 SQL只是例如,我不了解你的数据库数据结构:

<script>
var defaultValue=<?php
$result = $conn->query("SELECT sID from tableB");
$out=array();
while ($row = $result->fetch_assoc()) {
    $id=$row['sID'];
    $out[$id]=array();
    $sql = "SELECT Value1, Value2, Value3, Value4, Value5 FROM tableA WHERE sID='$id'";
    $result1 = $conn->query($sql);
    if ($result1->num_rows > 0) {
        while($row1 = $result1->fetch_assoc()) {
           $out[$id][]=$row;
        }
    }
}
echo json_encode($out);

?>;</script>