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
|
<?php
require_once 'PEAR.php';
require_once 'Structures/DataGrid.php';
$datagrid =& new Structures_DataGrid(10);
$options['dsn'] = 'mysql://username@localhost/mydatabase';
$datagrid->bind("SELECT * FROM mytable", $options);
// Set the javascript handler function for onclick events
$datagrid->setRendererOption('onMove', 'updateGrid', true);
if (isset($_GET['ajax'])) {
// Handle table AJAX requests
if ($_GET['ajax'] == 'table') {
$datagrid->render();
}
// Handle pager AJAX requests
if ($_GET['ajax'] == 'pager') {
$datagrid->render('Pager');
}
exit();
}
// No AJAX request, render the initial content..
?>
<html>
<head>
<!-- Require the Prototype JS framework from http://www.prototypejs.org -->
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript">
function updateGrid(info)
{
var url = '<?php echo $_SERVER['PHP_SELF']; ?>';
var pars = 'page=' + info.page;
if (info.sort.length > 0) {
pars += '&orderBy=' + info.sort[0].field + '&direction=' + info.sort[0].direction;
}
new Ajax.Updater( 'grid', url, { method: 'get', parameters: pars + '&ajax=table' });
new Ajax.Updater( 'pager', url, { method: 'get', parameters: pars + '&ajax=pager' });
// Important: return false to avoid href links
return false;
}
</script>
</head>
<body>
Pages: <span id="pager"><?php $datagrid->render('Pager'); ?></span>
<div id="grid"><?php $datagrid->render(); ?></div>
</body>
</html>
|