Demonstrates how to use the read from xml file sql commands.
You can store all your predefined sql commands in simple xml file where
every command is identfied by id and then just tell the jqGrid which
file to use and which sql. See the example.
Here in this example we use the following xml file
<?xml version="1.0" encoding="UTF-8"?>
<queries>
<sql Id="getProducts">
SELECT * FROM products
</sql>
<sql Id="getOrders">
SELECT * FROM orders
</sql>
</queries>
<?php
require_once '../../../../php/demo/tabs.php';
?>
<!DOCTYPE html>
<html>
<head>
<title>jqGrid PHP Demo</title>
<link rel="stylesheet" type="text/css" media="screen" href="../../../../css/jquery-ui.css" />
<link rel="stylesheet" type="text/css" media="screen" href="../../../../css/trirand/ui.jqgrid.css" />
<link rel="stylesheet" type="text/css" media="screen" href="../../../../css/ui.multiselect.css" />
<style type="text">
html, body {
margin: 0; /* Remove body margin/padding */
padding: 0;
overflow: hidden; /* Remove scroll bars on browser window */
font-size: 75%;
}
</style>
<script src="../../../../js/jquery.min.js" type="text/javascript"></script>
<script src="../../../../js/trirand/i18n/grid.locale-en.js" type="text/javascript"></script>
<script src="../../../../js/trirand/jquery.jqGrid.min.js" type="text/javascript"></script> <script type="text/javascript">
$.jgrid.no_legacy_api = true;
$.jgrid.useJSON = true;
$.jgrid.defaults.width = "700";
</script>
<script src="../../../../js/jquery-ui.min.js" type="text/javascript"></script>
</head>
<body>
<div>
<?php include ("grid.php");?>
</div>
<br/>
<?php tabs(array("grid.php","sqlxml.xml"));?>
</body>
</html>
grid.php.
<?php
require_once '../../jq-config.php';
// include the jqGrid Class
require_once ABSPATH."php/PHPSuito/jqGrid.php";
// include the driver class
require_once ABSPATH."php/PHPSuito/DBdrivers/jqGridPdo.php";
// Connection to the server
$conn = new PDO(DB_DSN,DB_USER,DB_PASSWORD);
// MySQL specific command for the charset
$conn->query("SET NAMES utf8");
// Create the jqGrid instance
$grid = new jqGridRender($conn);
// Data from this SQL is 1252 encoded, so we need to tell the grid
// Set the data source to be read from file
$grid->readFromXML = true;
// The first item is the xml file, the second is the query id
$grid->SelectCommand ='sqlxml.getProducts';
// set the ouput format to XML
$grid->dataType = 'xml';
// Let the grid create the model
$grid->setColModel();
// set labels in the header
$grid->setColProperty("ProductID", array("label"=>"ID"));
$grid->setColProperty("ProductName", array("label"=>"Name"));
$grid->setColProperty("QuantityPerUnit", array("label"=>"Unit"));
$grid->setColProperty("UnitPrice", array("label"=>"Unit Price"));
// We can hide some columns
$grid->setColProperty("SupplierID", array("hidden"=>true));
$grid->setColProperty("CategoryID", array("hidden"=>true));
$grid->setColProperty("UnitsOnOrder", array("hidden"=>true));
$grid->setColProperty("ReorderLevel", array("hidden"=>true));
$grid->setColProperty("Discontinued", array("hidden"=>true));
// Set the url from where we obtain the data
$grid->setUrl('grid.php');
// Set some grid options
$grid->setGridOptions(array("rowNum"=>10,"rowList"=>array(10,20,30),"sortname"=>"CategoryID"));
// Enable toolbar searching
$grid->toolbarfilter = true;
$grid->setFilterOptions(array("stringResult"=>true));
// Enjoy
$grid->renderGrid('#grid','#pager',true, null, null, true,true);
$conn = null;
?>
sqlxml.xml.
<?xml version="1.0" encoding="UTF-8"?>
<queries>
<sql Id="getProducts">
SELECT * FROM products
</sql>
<sql Id="getOrders">
SELECT * FROM orders
</sql>
</queries>