javascript - 使用来自 php 的数据库中的值自动突出显示
问题描述
我有五个(有时是 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']);
}
?>
解决方案
我不确定我是否正确理解了这个问题。此外,从您的代码中,我无法理解必须突出显示哪些行。
假设这是生成的 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 元素添加“突出显示”类:
$(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只是举例,我没看懂你的DB数据结构:
<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>
推荐阅读
- android - 在android中使用数据绑定设置滚动标志
- amazon-web-services - AWS 无服务器自定义 jwt 授权方 lambda 设置 cors 响应
- javascript - 我一直在修复此共享短信功能的错误,但是当我通过 google messenger 应用程序共享时,它不会预先填充文本正文
- php - 奇怪的解析错误:语法错误,意外`'if' (T_IF) ERROR`
- php - php合并两个动态数组递归
- angular - 将 [pageSize] 属性添加到 Kendo 网格后的 ExpressionChangedAfterItHasBeenCheckedError
- regex - 使用 Hive / Spark SQL 在 URL 中匹配字符串
- ibm-domino - 如何处理收件人地址中的空间
- command-line-interface - windows10 1903安装成功后如何运行lb/lb4 loopback cli 3 or 4 command not found
- abap - ALV 网格中的多行标题