Tony, обновленный код, показанный ниже, не позволит мне прокомментировать это, поэтому я отредактировал свой предыдущий пост, этот код ниже, не возвращает никаких результатов или ошибок, просто перезагружает страницу. Единственная проблема, которую я вижу с помощью кода, - это то, что мне нужно иметь возможность искать по всем заголовкам таблиц, по рейтингу, имени, области и т. Д. У меня был набор данных, который в реальном времени обновлял таблицы до результата, т работа с таблицей PHP и я не уверен, как я имел в виду, чтобы заставить его работать с DataTables, так как я никогда не использовал его раньше:Live Update Searchable Database MYSQL и PHP
updated code:
<html>
<head>
<body>
<style>
table {
color: #333; /* Lighten up font color */
font-family: Helvetica, Arial, sans-serif; /* Nicer font */
width: 100%;
border-collapse:
collapse; border-spacing: 0;
}
td, th { border: 1px solid #00000; height: 30px; } /* Make cells a bit taller */
th {
background: #F3F3F3; /* Light grey background */
font-weight: bold; /* Make sure they're bold */
}
td {
background: #FAFAFA; /* Lighter grey background */
text-align: center; /* Center our text */
}
</style>
<script type="text/javascript" language="javascript" src="http://wcfcourier.com/app/special/data_tables/media/js/jquery.js"></script>
<script type="text/javascript" language="javascript" src="http://wcfcourier.com/app/special/data_tables/media/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" charset="iso-8859-1">
$(document).ready(function(){
$('#five_year').dataTable({
"iDisplayLength": 300,
"aLengthMenu": [[5, 10, 25, 50, -1], [5, 10, 25, 50, "All"]]
});
$(document).ready(function() {
// Setup - add a text input to each footer cell
$('#five-year tfoot th').each(function() {
var title = $('#five_year thead th').eq($(this).index()).text();
$(this).html('<input type="text" placeholder="Search '+title+'" />');
});
// DataTable
var table = $('#five_year').DataTable();
// Apply the search
table.columns().eq(0).each(function (colIdx) {
$('input', table.column(colIdx).footer()).on('keyup change', function() {
table
.column(colIdx)
.search(this.value)
.draw();
});
});
});
});
$().ready(function() {
var regEx = /(\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)/;
$("table td").filter(function() {
return $(this).html().match(regEx);
}).each(function() {
$(this).html($(this).html().replace(regEx, "<a href=\"mailto:$1\">$1</a>"));
});
});
</script>
<form action="index.php" method="post">
<input type="text" name="search" placeholder="Search...." />
<input type="submit" value=">>" />
</form>
<?php
$con=mysqli_connect("localhost","root","windows11","main");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM `users` ORDER BY ID asc, Name asc") or die(mysqli_error($con));
echo
"<table border=1>
<tr>
<th>Rating</th>
<th>Name</th>
<th>Discipline</th>
<th>Rate</th>
<th>Area</th>
<th>Number</th>
<th>Email</th>
</tr>";
while($row = mysqli_fetch_array($result)){
echo "<tr>";
echo "<td>" . $row['Rating'] . "</td>";
echo "<td>" . $row['Name'] . "</td>";
echo "<td>" . $row['Discipline'] . "</td>";
echo "<td>" . $row['Rate'] . "</td>";
echo "<td>" . $row['Area'] . "</td>";
echo "<td>" . $row['Number'] . "</td>";
echo "<td>" . $row['Email'] . "</td>";
echo "</tr>";
echo "</form>";
}
// If there is a search variable try to search database
if(isset($_POST['search'])) {
$searchq = $_POST['search'];
$searchq = preg_replace("#[^0-9a-z]#i", "", $searchq);
$sql = "SELECT * FROM `users` WHERE `Rating` LIKE '%$searchq%';";
if ($result = mysqli_query($conn, $sql)) {
if (mysqli_num_rows($result) > 0) {
echo '
<table class="hoverTable">
<tr>
<th>Rating</th>
<th>Name</th>
<th>Discipline</th>
<th>Rate</th>
<th>Area</th>
<th>Number</th>
<th>Email</th>
</tr>';
while($row = $result->fetch_assoc()) {
echo "
<tr>
<td>".$row["rating"]."</td>
<td>".$row["name"]."</td>
<td>".$row["discipline"]."</td>
<td>".$row["rate"]."</td>
<td>".$row["area"]."</td>
<td>".$row["number"]."</td>
<td>".$row["email"]."</td>
</tr>";
}
echo '
</table>';
} else {
$message = "0 results";
}
}
mysqli_free_result($result);
}
$conn->close();
?>
</body>
</head>
</html>
Это также сценарий DataTables, который работает с HTML таблицы (все данные отщепляются в строки таблицы с помощью HTML не echo'd обнаруживаемых с помощью PHP скрипта:
<script type="text/javascript" language="javascript" src="http://wcfcourier.com/app/special/data_tables/media/js/jquery.js"></script>
<script type="text/javascript" language="javascript" src="http://wcfcourier.com/app/special/data_tables/media/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" charset="iso-8859-1">
$(document).ready(function(){
$('#five_year').dataTable({
"iDisplayLength": 300,
"aLengthMenu": [[5, 10, 25, 50, -1], [5, 10, 25, 50, "All"]]
});
$(document).ready(function() {
// Setup - add a text input to each footer cell
$('#five-year tfoot th').each(function() {
var title = $('#five_year thead th').eq($(this).index()).text();
$(this).html('<input type="text" placeholder="Search '+title+'" />');
});
// DataTable
var table = $('#five_year').DataTable();
// Apply the search
table.columns().eq(0).each(function (colIdx) {
$('input', table.column(colIdx).footer()).on('keyup change', function() {
table
.column(colIdx)
.search(this.value)
.draw();
});
});
});
});
$().ready(function() {
var regEx = /(\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)/;
$("table td").filter(function() {
return $(this).html().match(regEx);
}).each(function() {
$(this).html($(this).html().replace(regEx, "<a href=\"mailto:$1\">$1</a>"));
});
});
</script>
Я могу видеть, что этот DataTables код необходим идентификатор таблицы для справки, но я не могу назначить идентификатор таблицы к PHP-коду, поскольку он просто сбивает скрипт и страницу, когда я пытаюсь.
благодарит за помощь.
Да, это возможно, проверить [DataTables] (http://datatables.net/) у него есть все, что вам нужно сделать. – Naruto
Хотя, в зависимости от объема данных, вы можете настроить таблицу MyISAM с определенными полями для типа данных, хранящихся там, и ссылки на исходные записи для скорость. Предполагая, что вы хотите асинхронно выполнять поиск по миллионам записей. – ash
Я посмотрел на datatables, но не вижу, как реализовать это с моими таблицами. в HTML-таблицах orignal, я смог включить идентификатор таблицы, с которым работал jscript, но таким образом, если i добавьте идентификатор таблицы в любом месте, он не работает и сбой сценария. – Mouseman85