netpumber Posted July 9, 2011 Share Posted July 9, 2011 Hello out there.. I m trying to use the JqGrid plugin to create a simple table. here is the home page of this plugin http://www.trirand.com/blog/ I do what they say in the documentation but i take an error from xml file. Source code [file:index.php]: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>My First Grid</title> <link rel="stylesheet" type="text/css" media="screen" href="css/ui-lightness/jquery-ui-1.8.14.custom.css" /> <link rel="stylesheet" type="text/css" media="screen" href="css/ui.jqgrid.css" /> <script src="js/jquery-1.5.2.min.js" type="text/javascript"></script> <script src="js/i18n/grid.locale-en.js" type="text/javascript"></script> <script src="js/jquery.jqGrid.min.js" type="text/javascript"></script> <style> html, body { margin: 0; padding: 0; font-size: 75%; } </style> <script type="text/javascript"> $(function(){ $("#list").jqGrid({ url:'index.php', datatype: 'xml', mtype: 'GET', colNames:['Inv No','Date', 'Amount','Tax','Total','Notes'], colModel :[ {name:'invid', index:'invid', width:55}, {name:'invdate', index:'invdate', width:90}, {name:'amount', index:'amount', width:80, align:'right'}, {name:'tax', index:'tax', width:80, align:'right'}, {name:'total', index:'total', width:80, align:'right'}, {name:'note', index:'note', width:150, sortable:false} ], pager: '#pager', rowNum:10, rowList:[10,20,30], sortname: 'invid', sortorder: 'desc', viewrecords: true, gridview: true, caption: 'My first grid' }); }); </script> </head> <body> <table id="list"><tr><td/></tr></table> <div id="pager"></div> </body> </html> <?php //include the information needed for the connection to MySQL data base server. // we store here username, database and password //include("dbconfig.php"); // to the url parameter are added 4 parameters as described in colModel // we should get these parameters to construct the needed query // Since we specify in the options of the grid that we will use a GET method // we should use the appropriate command to obtain the parameters. // In our case this is $_GET. If we specify that we want to use post // we should use $_POST. Maybe the better way is to use $_REQUEST, which // contain both the GET and POST variables. For more information refer to php documentation. // Get the requested page. By default grid sets this to 1. $page = 1; //$_GET['page']; // get how many rows we want to have into the grid - rowNum parameter in the grid $limit = 5; //$_GET['rows']; // get index row - i.e. user click to sort. At first time sortname parameter - // after that the index from colModel $sidx = 'invid'; //$_GET['sidx']; // sorting order - at first time sortorder $sord = 'invid' ;//$_GET['sord']; // if we not pass at first time index use the first column for the index or what you want if(!$sidx) $sidx =1; // connect to the MySQL database server $db = mysql_connect('localhost', user', 'pass') or die("Connection Error: " . mysql_error()); $database = 'gridTest'; // select the database mysql_select_db($database) or die("Error connecting to db."); // calculate the number of rows for the query. We need this for paging the result $result = mysql_query("SELECT COUNT(*) AS count FROM invheader"); $row = mysql_fetch_array($result,MYSQL_ASSOC); $count = $row['count']; // calculate the total pages for the query if( $count > 0 && $limit > 0) { $total_pages = ceil($count/$limit); } else { $total_pages = 0; } // if for some reasons the requested page is greater than the total // set the requested page to total page if ($page > $total_pages) $page=$total_pages; // calculate the starting position of the rows $start = $limit*$page - $limit; // if for some reasons start position is negative set it to 0 // typical case is that the user type 0 for the requested page if($start <0) $start = 0; // the actual query for the grid data $SQL = "SELECT invid, invdate, amount, tax,total, note FROM invheader ORDER BY $sidx , $sord LIMIT $start , $limit"; $result = mysql_query( $SQL ) or die("Couldn't execute query.".mysql_error()); // we should set the appropriate header information. Do not forget this. header("Content-type: text/xml;charset=utf-8"); $s = "<?xml version='1.0' encoding='utf-8'?>"; $s .= "<rows><br>"; $s .= "<page>".$page."</page>"; $s .= "<total>".$total_pages."</total>"; $s .= "<records>".$count."</records>"; // be sure to put text data in CDATA while($row = mysql_fetch_array($result,MYSQL_ASSOC)) { $s .= "<row id='". $row['invid']."'>"; $s .= "<cell>". $row['invid']."</cell>"; $s .= "<cell>". $row['invdate']."</cell>"; $s .= "<cell>". $row['amount']."</cell>"; $s .= "<cell>". $row['tax']."</cell>"; $s .= "<cell>". $row['total']."</cell>"; $s .= "<cell><![CDATA[". $row['note']."]]></cell>"; $s .= "</row>"; } $s .= "</rows>"; echo $s; ?> and here is the error : XML Parsing Error: junk after document element Location: http://localhost/SpDatabase/res/grid/ Line Number 62, Column 1:<?xml version='1.0' encoding='utf-8'?><rows><br><page>1</page><total>1</total><records>1</records><row id='1'><cell>1</cell><cell>2001-01-10</cell><cell>103.00</cell><cell>45.00</cell><cell>149.00</cell><cell><![CDATA[This is record 1]]></cell></row></rows> ^ Any idea on whats will be wrong ? Thanks in advance! Link to comment https://forums.phpfreaks.com/topic/241483-jqgrid-plugin-problem-with-the-output-xml-file/ Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.