Ag-grid Php Example Here
$startRow = $input['startRow'] ?? 0; $endRow = $input['endRow'] ?? 100; $sortModel = $input['sortModel'] ?? []; $filterModel = $input['filterModel'] ?? [];
// Grid configuration const gridOptions = { columnDefs: columnDefs, rowModelType: 'serverSide', serverSideStoreType: 'partial', cacheBlockSize: 100, pagination: true, paginationPageSize: 100, enableSorting: true, enableFilter: true, animateRows: true, onGridReady: function(params) { params.api.setServerSideDatasource(dataSource); } }; ag-grid php example
case 'date': // Add date filtering logic as needed break; } } } $startRow = $input['startRow']
// Return response in AG Grid expected format echo json_encode([ 'rows' => $rows, 'lastRow' => $totalRows ]); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>AG Grid PHP Example</title> <script src="https://cdn.jsdelivr.net/npm/ag-grid-community@31.3.2/dist/ag-grid-community.min.js"></script> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/ag-grid-community@31.3.2/styles/ag-grid.css"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/ag-grid-community@31.3.2/styles/ag-theme-alpine.css"> <style> .ag-theme-alpine { height: 600px; width: 100%; } body { font-family: Arial, sans-serif; margin: 20px; } </style> </head> <body> <h2>AG Grid with PHP Backend</h2> <div id="myGrid" class="ag-theme-alpine"></div> <script> // Define columns const columnDefs = [ { field: 'id', headerName: 'ID', width: 80, filter: 'agNumberColumnFilter' }, { field: 'name', headerName: 'Name', width: 150, filter: 'agTextColumnFilter' }, { field: 'email', headerName: 'Email', width: 200, filter: 'agTextColumnFilter' }, { field: 'age', headerName: 'Age', width: 100, filter: 'agNumberColumnFilter' }, { field: 'country', headerName: 'Country', width: 120, filter: 'agTextColumnFilter' }, { field: 'salary', headerName: 'Salary', width: 150, filter: 'agNumberColumnFilter', valueFormatter: params => { return '$' + params.value?.toLocaleString(); } } ]; []; $filterModel = $input['filterModel']
// ... same SQL building logic as above ...
try { $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e) { die(json_encode(['error' => 'Database connection failed'])); } ?> <?php require_once 'config.php'; // Get request parameters from AG Grid $startRow = isset($_GET['startRow']) ? (int)$_GET['startRow'] : 0; $endRow = isset($_GET['endRow']) ? (int)$_GET['endRow'] : 100; $sortModel = isset($_GET['sortModel']) ? json_decode($_GET['sortModel'], true) : []; $filterModel = isset($_GET['filterModel']) ? json_decode($_GET['filterModel'], true) : [];
