Bonjour à toutes et tous,

J'essaie de récupérer en ajax des données issues d'une base MySql pour remplir une datatable.
Tout fonctionne plutôt pas mal sauf la pagination. Pour les 4 premières pages, pas de soucis, mais dès que je veux afficher la 5ème, ca ne fonctionne plus alors que les paramètres passés semble corrects.


Voici le code html/javascript:
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<!DOCTYPE html>
<html>
<title>Consultation des comptes Twitter collectés au titre du dépôt légal du Web</title>
<link rel="stylesheet" type="text/css" href="datatable/DataTables-1.10.18/css/jquery.dataTables.css">
<link rel="stylesheet" type="text/css" href="/datatable/Buttons-1.5.6/css/buttons.dataTables.css">
<script type="text/javascript" language="javascript" src="datatable/DataTables-1.10.18/js/jquery.js"></script>
<script type="text/javascript" language="javascript" src="datatable/DataTables-1.10.18/js/jquery.dataTables.js"></script>
<script type="text/javascript" language="javascript" src="/datatable/Buttons-1.5.6/js/buttons.colVis.min.js"></script>
<script type="text/javascript" language="javascript" src="/datatable/Buttons-1.5.6/js/buttons.html5.min.js"></script>
<script type="text/javascript" language="javascript" src="/datatable/Buttons-1.5.6/js/dataTables.buttons.min.js"></script>
<script type="text/javascript" charset="utf-8_encode">  
 
$(document).ready(function(){
  var dataTable = $('#t_twitter').DataTable({
    'processing': true,
    'serverSide': true,
    'serverMethod': 'post',
    //'searching': false, // Remove default Search Control
    'ajax': {
       'url':'get_T_TWITTER_data_light.php',
       'data': function(data){
          // Read values
                        var i_Mention = $('#searchByMention').val();
                        var i_Id = $('#searchById').val();
                        var i_Name = $('#searchByName').val();
                        var i_Localisation = $('#searchByLocalisation').val();
          // Append to data
                        data.searchByMention = i_Mention;
                        data.searchById = i_Id;  
                        data.searchByName = i_Name;
                        data.searchByLocalisation = i_Localisation;
       }
    },
    'columns': [
                { data: 'TWITTER_USER_SCREEN_NAME' },
                { data: 'TWITTER_USER_ID' },
                { data: 'TWITTER_USER_NAME' },
                { data: 'TWITTER_USER_LOCATION' }
    ]
  });
 
  $('#searchByMention').keyup(function(){
    dataTable.draw();
  });
   $('#searchById').change(function(){
    dataTable.draw();
  });
  $('#searchByName').change(function(){
    dataTable.draw();
  });
   $('#searchByLocalisation').change(function(){
    dataTable.draw();
  });  
});
 
</script>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
body {
    font-family:Arial;
        font-size:smaller;
        color: black;
        background-color: #FFFFFF
}
</style>
<BR>
<BR>
<BR>
<center><h1><font>Consultation des comptes Twitter collectés au titre du dépôt légal du Web</font></h1></center>
<BR>
<BR>
<BR>
	<table>
     <tr>
       <td><input type='text' id='searchByMention' placeholder='Filtrer par Mention'> </td>
	   <td><input type='text' id='searchById' placeholder='Filtrer par Id'> </td>
	   <td><input type='text' id='searchByName' placeholder='Filtrer par Nom '> </td>
	   <td><input type='text' id='searchByLocalisation' placeholder='Filtrer par Localisation '> </td>
       </td>
     </tr>
   </table>
   <div class= "container">
	<table id="t_twitter" class="display" style="width:100%">
		<thead>
		<tr>
			<th><b><u><font color="black">Mention du compte</font></u></b></th>
			<th><b><u><font color="black">Id du compte</font></u></b></th>
			<th><b><u><font color="black">Nom du compte</font></u></b></th>
			<th><b><u><font color="black">Localisation du compte</font></u></b></th>
		</tr>
			</thead>
		<tfoot>
				<tr>
						<th>Mention du compte</th>
						<th>Id du compte</th>
						<th>Nom du compte</th>
						<th>Localisation du compte</th>
				</tr>
			</tfoot>
	</table>
	</div>
</body>
</html>

Et la partie Ajax/php:
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php
include 'config.php';
 
## Read value
$draw = $_POST['draw'];
$row = $_POST['start'];
$rowperpage = $_POST['length']; // Rows display per page
$columnIndex = $_POST['order'][0]['column']; // Column index
$columnName = $_POST['columns'][$columnIndex]['data']; // Column name
$columnSortOrder = $_POST['order'][0]['dir']; // asc or desc
$searchValue = $_POST['search']['value']; // Search value
 
## Custom Field value
$searchByMention = $_POST['searchByMention'];
$searchById = $_POST['searchById'];
$searchByName = $_POST['searchByName'];
$searchByLocalisation = $_POST['searchByLocalisation'];
 
## Search 
$searchQuery = " ";
if($searchByLocalisation != ''){
   $searchQuery .= " and (TWITTER_USER_SCREEN_NAME like '%".$searchByLocalisation."%' ) ";
}
if($searchById != ''){
   $searchQuery .= " and (TWITTER_USER_ID like '%".$searchById."%' ) ";
}
if($searchByName != ''){
   $searchQuery .= " and (TWITTER_USER_NAME like '%".$searchByName."%' ) ";
}
if($searchByLocalisation != ''){
   $searchQuery .= " and (TWITTER_USER_LOCATION like '%".$searchByLocalisation."%' ) ";
}
if($searchValue != ''){
   $searchQuery .= " and ((TWITTER_USER_SCREEN_NAME like '%".$searchValue."%') ";
	$searchQuery .= " or ( TWITTER_USER_ID like '%".$searchValue."%') ";
	$searchQuery .= " or ( TWITTER_USER_NAME like '%".$searchValue."%') ";
	$searchQuery .= " or ( TWITTER_USER_LOCATION like '%".$searchValue."%')) ";
}
 
## Total number of records without filtering
$sel = mysqli_query($con,"select count(*) as allcount from T_TWITTER");
$records = mysqli_fetch_assoc($sel);
$totalRecords = $records['allcount'];
 
## Total number of records with filtering
$sel = mysqli_query($con,"select count(*) as allcount from T_TWITTER WHERE 1 ".$searchQuery);
$records = mysqli_fetch_assoc($sel);
$totalRecordwithFilter = $records['allcount'];
 
## Fetch records
$empQuery = "select * from T_TWITTER WHERE 1 ".$searchQuery." order by ".$columnName." ".$columnSortOrder." limit ".$row.",".$rowperpage;
$empRecords = mysqli_query($con, $empQuery);
$data = array();
 
while ($row = mysqli_fetch_assoc($empRecords)) {
   $data[] = array(
    "TWITTER_USER_SCREEN_NAME"=>$row['TWITTER_USER_SCREEN_NAME'],
	"TWITTER_USER_ID"=>$row['TWITTER_USER_ID'],
	"TWITTER_USER_NAME"=>$row['TWITTER_USER_NAME'],
	"TWITTER_USER_LOCATION"=>$row['TWITTER_USER_LOCATION']
   );
}
 
## Response
$response = array(
  "empQuery" => $empQuery,
  "draw" => $draw,
  "iTotalRecords" => $totalRecords,
  "iTotalDisplayRecords" => $totalRecordwithFilter,
  "aaData" => $data
);
 
echo json_encode($response);

D'avance merci.