php - Jquery 表的问题
问题描述
在上一个问题之后,我获得了关于直接选择 TR 的支持 - 我现在面临的问题是,当我将这个 SECOND TR 添加到表结构中时,我失去了来自https://的 Jquery DataTables 的所有功能datatables.net/喜欢搜索和页面计数器分机......如果我删除第二个 TR 它工作正常 - 我错过了什么?有什么矛盾的?
的HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title></title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!--IMPORT GREYBOX -->
<script type="text/javascript">
var GB_ROOT_DIR = "/greybox/";
</script>
<script type="text/javascript" src="greybox/AJS.js"></script>
<script type="text/javascript" src="greybox/gb_scripts.js"></script>
<link href="greybox/gb_styles.css" rel="stylesheet" type="text/css" />
<script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.23/js/jquery.dataTables.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.23/css/jquery.dataTables.css">
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.4/dist/umd/popper.min.js" integrity="sha384-q2kxQ16AaE6UbzuKqyBE9/u/KzioAlnx2maXQHiDX9d4/zp8Ok3f+M7DPm+Ib6IU" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous">
<link rel="stylesheet" type="text/css" href="css/main.css">
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<script src="js/main.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#table_idh').DataTable();});
</script>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand fa fa-car" href="#"><span style="color:orange;font-family: impact; margin-left: 5px;">MTC AUTO</span></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="index.php">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" id="addClient" href="addRecord.php" title="Add Client" rel="gb_page_center[500,500]">Add Client</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
<form action="inc/server.php?logout=true" method="POST">
<input type="button" disabled class="btn btn-primary m15" value="Hello <? echo $username; ?>">
<input type="submit" class="btn btn-warning m15" name="logout" value="Logout">
</form>
</div>
</nav>
<div class="container" style="margin-top: 95px;">
<table id="table_idh" class="display m95">
<thead>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Phone Number</th>
<th>Email</th>
<th>Date/Birth</th>
<th>Income</th>
<th>Date</th>
</tr>
</thead>
<tbody>
<!-- Get Records From Db-->
<?php include 'inc/getRecords.php'; ?>
</tbody>
</table>
</div>
jQuery
$(document).ready(()=> {
const $addClient = $('#addClient');
$addClient.hover(()=>{
$addClient.css({"color":"red","text-decoration":"underline"});
},()=> {
$addClient.css({"color":"black","text-decoration":"none"});
});
$('.trigger').on('click',(e) => {
$(e.target).closest('tr').next('tr').toggleClass('hide');
})
})
来自数据库循环的表格插入 - 当我删除它时,第二个 TR 导致问题我得到了所有功能 -
echo "
<tr>
<td class='trigger'>".$firstName."</td>
<td>".$lastName."</td>
<td>".$phone."</td>
<td><a href='mailto:".$email."'>".$email."</a></td>
<td>".$dob."</td>
<td>".$emp_income."</td>
<td>".$dateIn."</td>
</tr>
<tr class='hide'>
<td colspan=7>Address: ".$address." <br> Province: ".$prov." <br> Postal Code:
".$post." <br>RentOrOwn: ".$rent_or_own." <br>House Payment: ".$house_payment."<br>Shopping: ".$shopping."<br> Employer:".$emp_name."<br>Job Title: ".$emp_title."<br>Employment Time: ".$emp_time."<br>Downpayment: ".$downpayment." </td>
</tr>
";
解决方案
请在最后使用/加载表格激活代码。
$(document).ready(function() {
$('#table_idh').DataTable();
});
您可以在页面正文的底部使用它。并在加载引导文件后加载 cdn.datatables.net 文件。身体的页脚/底部将是最好的。
#### 解决方案 ####
通过为每个单元格添加一个“不可见”单元格来解决 colspan 支持的问题。
echo "
<tr>
<td class='trigger'>".$firstName."</td>
<td>".$lastName."</td>
<td>".$phone."</td>
<td><a href='mailto:".$email."'>".$email."</a></td>
<td>".$dob."</td>
<td>".$emp_income."</td>
<td>".$dateIn."</td>
</tr>
<tr class='hide' >
<td width='100%'>
Address: ".$address."
<br> Province: ".$prov."
<br> Postal Code: ".$post."
<br>RentOrOwn: ".$rent_or_own."
<br>House Payment: ".$house_payment."
<br>Shopping: ".$shopping."
<br> Employer:".$emp_name."
<br>Job Title: ".$emp_title."
<br>Employment Time: ".$emp_time."
<br>Downpayment: xxx".$downpayment."
</td>
<!-- hidden column 6 for proper DataTable applying -->
<td style='display: none'></td>
<td style='display: none'></td>
<td style='display: none'></td>
<td style='display: none'></td>
<td style='display: none'></td>
<td style='display: none'></td>
<td style='display: none'></td>
</tr>
";
推荐阅读
- php - 我可以通过关系在一个查询中获得所有需要的数据吗?
- sql-server - 在 SQL Server 中处理易混淆的字符
- react-native - 导航参数未定义
- class - Flutter TextFormField Validation使用构造函数调用一页错误
- c# - 如何使用nest.net搜索具有不同映射索引的别名
- r - 根据特定的行值对齐两个数据框以使其相同
- regex - 为什么正则表达式不支持反向匹配?
- android - 如何打开我刚刚从 react-native Webview 下载的 apk 文件?
- docker - Gulp 安装错误的版本。需要 3.9.1 但继续安装 4.0.2
- java - 如何使用java列出gitlab分支中特定文件夹的所有文件