Undefined index order, start and length
Undefined index order, start and length
I am trying to create a data table using server-side processing but It seems the post request sent through AJAX has some undefined variables. I am very new to Jquery data tables so any suggestions would be greatly appreciated. I have attached the codes below as well as the errors.
HTML FILE
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Central American Management</title>
</head>
<body>
<div>
<input type="hidden" id="UserId" name="UserId" data-id="<?php echo($_SESSION['UserId'])?>"></input>
<div class="container-fluid">
<div class="container">
<div class="btnAdd" style="margin: 0px 0px 10px 0px">
<button class="btn btn-primary btn-md" id="add-document"><span>Add Document</span></button>
</div>
<table id="document_table" class="table table-striped table-bordered">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Country</th>
<th>Shared</th>
<th>Uploaded BY</th>
<th>Uploaded Date</th>
<th>Options</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="modal-container" id="modal-container"></div>
<script src="../javascriptfiles/Documents.js"></script>
</body>
</html>
JS FILE
$(document).ready(function(){
getDocuments();
$('#modal-container').on('hidden.bs.modal', function() {
getDocuments();
});
});
function getDocuments() {
$('#document_table').dataTable({
'processing':true,
'serverSide':true,
'ajax': {
'url': "//centralamericanmanagement.000webhostapp.com/phpfiles/getDocuments.php",
'type': "POST"
}
});
}
PHP FILE
```
<?php
require_once '../DBConnection/dbConfig.php';
$params = $columns = $totalRecords = $data = array();
$params = $_REQUEST;
$columns = array(
0 => 'documentId',
1 => 'document_name',
2 => 'country_name',
3 => 'shared',
4 => 'user',
5 => 'uploadDate',
6 => 'actions'
);
$where_condition = $sqlTot = $sqlRec = "";
if( !empty($params['search']['value']) ) {
$where_condition .= " WHERE ";
$where_condition .= " ( post_title LIKE '%".$params['search']['value']."%' ";
$where_condition .= " OR post_desc LIKE '%".$params['search']['value']."%' )";
}
$sql_query = " SELECT * FROM getDocuments ";
$sqlTot .= $sql_query;
$sqlRec .= $sql_query;
if(isset($where_condition) && $where_condition != '') {
$sqlTot .= $where_condition;
$sqlRec .= $where_condition;
}
$sqlRec .= " ORDER BY ". $columns[$params['order'][0]['column']]." ".$params['order'][0]['dir']." LIMIT ".$params['start']." ,".$params['length']." ";
try {
$queryTot = $dbh->query($sqlTot);
$totalRecords = $queryTot->fetchColumn();
$queryRecords = $dbh->query($sqlRec);
while( $row = $queryRecords->fetch()) {
$sub_array = array();
$sub_array[] = $row["documentId"];
$sub_array[] = $row["document_name"];
$sub_array[] = $row["country_name"];
$sub_array[] = $row["shared"];
$sub_array[] = $row["user"];
$sub_array[] = $row["uploadDate"];
$sub_array[] = '<a data-id="'.$row['documentId'].'" class="btn btn-info btn-sm editbtn" >Edit</a> <a " data-id="'.$row['documentId'].'" class="btn btn-danger btn-sm deleteBtn" >Delete</a>';
$data[] = $sub_array;
}
$json_data = array(
"draw" => intval( $params['draw'] ),
"recordsTotal" => intval( $totalRecords ),
"recordsFiltered" => intval($totalRecords),
"data" => $data
);
echo json_encode($json_data);
}
catch (PDOException $e){
echo json_encode("Error!: " . $e->getMessage() . "<br/>");
}
ERRORS: (Thrown from DB and PHP)
<br />
<b>Notice</b>: Undefined index: order in <b>/storage/ssd4/085/17686085/public_html/phpfiles/getDocuments.php</b> on line <b>36</b><br />
<br />
<b>Notice</b>: Undefined index: in <b>/storage/ssd4/085/17686085/public_html/phpfiles/getDocuments.php</b> on line <b>36</b><br />
<br />
<b>Notice</b>: Undefined index: order in <b>/storage/ssd4/085/17686085/public_html/phpfiles/getDocuments.php</b> on line <b>36</b><br />
<br />
<b>Notice</b>: Undefined index: start in <b>/storage/ssd4/085/17686085/public_html/phpfiles/getDocuments.php</b> on line <b>36</b><br />
<br />
<b>Notice</b>: Undefined index: length in <b>/storage/ssd4/085/17686085/public_html/phpfiles/getDocuments.php</b> on line <b>36</b><br />
"Error!: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'LIMIT ,' at line 1<br\/>"
Answers
There is nothing immediately obvious there I'm afraid.
Can you use the debugger to give me a trace please - click the Upload button and then let me know what the debug code is.
Allan