Динамическое обновление данных из сценария php. Ниже сценарий, который мы делаем с AJAX. Вот мой поиск кода не работает с таблицами данных. Когда я — пользователь, поиск данных sAjaxSource не работает. Без использования данных поиска sAjaxSource. Пожалуйста, предоставьте пример jsfiddle. И разбиение на страницы не работает. И ограничение страницы не работает. Пожалуйста, помогите мне.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Admin demo</title>
<style type="text/css" title="currentStyle">
@import "demo_page.css";
@import "demo_table.css";
</style>
<script type='text/javascript' src='http://code.jquery.com/jquery-1.9.1.js'></script>
<script type="text/javascript" src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
<link rel="stylesheet" type="text/css" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
<!--<link rel="stylesheet" type="text/css" href="/css/result-light.css"> -->
<script type='text/javascript' src="http://cdn.datatables.net/1.10.2/js/jquery.dataTables.min.js"></script>
<link rel="stylesheet" type="text/css" href="http://cdn.datatables.net/1.10.2/css/jquery.dataTables.min.css">
<script type='text/javascript' src="http://jquery-datatables-column-filter.googlecode.com/svn/trunk/media/js/jquery.dataTables.columnFilter.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.1.0.js"></script>
<script type='text/javascript'>//<![CDATA[
$(window).load(function(){
$(document).ready(function () {
var oTable = "";
$.datepicker.regional[""].dateFormat = 'yy-mm-dd';
$.datepicker.setDefaults($.datepicker.regional['']);
drawDataTable = function()
{
oTable = $('#example').dataTable({
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": 'reg_users.php',
"aoColumns": [{
"sWidth": "200px"},
null,
null,
null]
})
.columnFilter({
sPlaceHolder: "head:before",
aoColumns: [{
type: "text"}, {
type: "text"}, {
type: "date-range"},{
type: "text"}]
});
}
// call datatable for the first time when page loads
drawDataTable();
oTable.fnClearTable();
if (data.aaData.length)
oTable.fnAddData(data.aaData);
oTable.fnDraw();
$('#example').on("click", "tr#dialog-confirm", function () {
var tableData = $(this).children("td").map(function () {
return $(this).text();
}).get();
//' + $.trim(tableData[0]) + '
var dynamicDialog = $('<div id="MyDialog" > <div><div style="width:150px;float:left;">Amount</div><div style="float:left;">:</div><div style="width:150px;float:left;"><input type="text" name="amount" id="amount" style="width:150px;"/><input type="text" name="nickname" id="nickname" value="'+$.trim(tableData[0])+'" style="display:none;"/></div></div><div><div style="width:150px;float:left;">Password</div><div style="float:left;">:</div><div style="width:150px;float:left;"><input type="password" name="password" id="password" style="width:150px;"/></div></div></div>');
dynamicDialog.dialog({
title: "Admin chips adding",
modal: true,
height: 250,
width: 400,
buttons: [{
text: "Yes",
click: function ()
{
$.ajax({
type: "POST",
dataType: "html",
url: "Chips_AddedByAdmin.php",
cache: false,
data: {
username: $.trim(tableData[0]),
amount: $('#amount').val(),
password: $('#password').val()
},
beforeSend: function () {
$('#MyDialog').html('loading please wait...');
},
success: function (htmldata) {
//destroy existing datatable
$('#example').dataTable().fnDestroy();
//call datatable
drawDataTable();
$('#MyDialog').html("You have successfully updated the database");
dynamicDialog.dialog("close");
}
});
}
}, {
text: "No",
click: function (e) {
$(this).dialog("close");
}
}]
});
});
});
});//]]>
</script>
</head>
<body>
<table id="example" class="display">
<thead>
<tr>
<th style="width: 150px;">UserName</th>
<th style="width: 150px;">Email</th>
<th style="width: 180px;">Created Date</th>
<th style="width: 180px;">Real Chips</th>
</tr>
<tr>
<th style="width: 150px;">UserName</th>
<th style="width: 150px;">Email</th>
<th style="width: 180px;">Created Date</th>
<th style="width: 180px;">Real Chips</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</body>
</html>
И это reg_users.php
<?php
define('DB_SERVER', 'localhost'); // Your Database host
define('DB_USERNAME', 'root'); // Your Database user name
define('DB_PASSWORD', ''); // Your Database password
define('DB_DATABASE', 'qwer'); // Your Database Name
$connection = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE); // Connection
$sql = "SELECT nickname, email ,created_date_time,real_chips FROM users ";
$rs = mysqli_query($connection,$sql);
$str ="";
$dataArr['aaData'] = Array();
while($row = mysqli_fetch_assoc($rs)){
$r = Array();
foreach($row as $key=>$value){
$r[] = "$value";
}
$dataArr['aaData'][] = $r;
}
header('Content-Type: application/json');
echo json_encode($dataArr);
?>
и это Chips_AddedByAdmin.php
<?php
require_once("configure.php");
echo $nickname = $_POST['username'];
echo $amount = $_POST['amount'];
echo $password = $_POST['password'];
echo $sql = "SELECT * FROM users WHERE nickname ='admin' and password='$password';";
$rs = mysqli_query($connection,$sql);
$numrows=mysqli_num_rows($rs);
if($numrows > 0)
{
echo $sql = "update users set real_chips=real_chips+'$amount' where nickname='$nickname';";
$rs = mysqli_query($connection,$sql);
}
?>
Пожалуйста, помогите мне.
… поиск не работает … нумерация страниц не работает … ограничение страницы не работает …
Хорошо, где в вашем серверном коде вы выполняете эти действия?
Я не вижу никакой фильтрации, подкачки страниц или чего-либо еще, кроме как просто извлекать все записи:
$sql = "SELECT nickname, email ,created_date_time,real_chips FROM users ";
$rs = mysqli_query($connection,$sql);
С обработка на стороне сервера в DataTables, код JavaScript отправляет на сервер дополнительные параметры, чтобы указать строку поиска, размер страницы, номер страницы и т. д. Затем вы должны выполнить эту логику в своих запросах на стороне сервера. (Отсюда и термин «обработка на стороне сервера».) См. Документацию по DataTables:
При включенной обработке на стороне сервера все действия по подкачке, поиску и упорядочению, которые выполняет DataTables, передаются на сервер, где механизм SQL (или аналогичный) может выполнять эти действия с большим набором данных (в конце концов, это то, чем является механизм базы данных предназначен для!). Таким образом, каждое рисование таблицы приведет к новому запросу Ajax для получения необходимых данных.
Есть пример такого серверного скрипта в PHP Вот. Например, для выполнения разбивки на страницы сценарий проверяет значения формы поставок и изменяет запрос SQL:
/*
* Paging
*/
$sLimit = "";
if ( isset( $_GET['iDisplayStart'] ) && $_GET['iDisplayLength'] != '-1' )
{
$sLimit = "LIMIT ".intval( $_GET['iDisplayStart'] ).", ".
intval( $_GET['iDisplayLength'] );
}
Затем выполняет аналогичные модификации запросов для сортировки, фильтрации и т. Д.
Также, как примечание, похоже, что вы храните пароли пользователей в виде простого текста. Никогда не храните пароли пользователей в виде простого текста. это крайне безответственный для ваших пользователей.
Других решений пока нет …