30. april 2010 - 23:36
Der er
4 kommentarer
Indsætte data fra SQL i EXTJS grid
Hejsa
Jeg har nedenstående kode, og det virker - næsten. Jeg kan se i firebug, at jeg får hentet data fra databasen, men jeg får ikke vist dem i mit grid - hvorfor ikke?
'list-companies-grid' : function(){
var companyGrid = new Ext.grid.GridPanel({
store : new Ext.data.DirectStore({
writer: new Ext.data.JsonWriter({ encode: false, writeAllFields: true }),
fields:[
{name:'se_id'},
{name:'se_name'},
{name:'se_country'}
],
api: {
read: Elopak.eBIS.Remote.Companies.getCompanies
},
autoLoad: true,
idProperty:'ID',
root:'rows',
}),
id: 'list-companies-grid',
title : 'Jernbane selskaber',
layout: 'fit',
columns : [{id: 'company', header: 'ID', dataIndex: 'se_id'},
{header: 'Navn', dataIndex: 'se_name'},
{header: 'Land', dataIndex: 'se_country'}],
viewConfig: {
forceFit: true},
border: false
});
viewport.get(1).removeAll();
viewport.get(1).add(companyGrid);
viewport.get(1).doLayout();
Og SQL:
/**
* @remotable
*/
public static function getCompanies() {
extract($GLOBALS);
$result = $g_ebis->query('SELECT se_id, se_name, se_country FROM tog_selskaber');
return array('rows' => $result->fetch_paged_array());
}
mener du f.eks dem her - SQL:
class MySQL extends SimpleSQL
{
public function _connect() {
$resource = mysql_connect($this->host, $this->user, $this->pass, true);
if ($resource !== false) mysql_set_charset('utf8');
return $resource;
}
public function _close() {
return mysql_close($this->link);
}
protected function _select_db($db) {
return mysql_select_db($db, $this->link);
}
protected function _escape($value, $quotes = false) {
if (is_null($value)) {
return 'NULL';
}
if (is_bool($value)) {
return ($value ? '1' : '0');
}
if (!is_numeric($value)) {
if ($this->link !== null) {
$value = mysql_real_escape_string($value, $this->link);
}
else {
$value = mysql_escape_string($value);
}
if ($quotes) {
$value = "'" . $value . "'";
}
}
return $value;
}
protected function _query($query) {
$result = mysql_query($query, $this->link);
if (is_bool($result)) {
return $result;
}
$result_set = new MySQLResult($this->link, $result);
return $result_set;
}
protected function _affected_rows() {
return mysql_affected_rows($this->link);
}
protected function _insert_id() {
return mysql_insert_id($this->link);
}
protected function _last_error() {
return mysql_error($this->link);
}
}
class MySQLResult extends SimpleSQLResult {
public function _free() {
return mysql_free_result($this->result);
}
public function data_seek($row) {
return mysql_data_seek($this->result, $row);
}
public function fetch_array($type = SQL_ASSOC) {
switch ($type) {
case SQL_ASSOC:
return mysql_fetch_array($this->result, MYSQL_ASSOC);
case SQL_NUM:
return mysql_fetch_array($this->result, MYSQL_NUM);
case SQL_BOTH:
return mysql_fetch_array($this->result, MYSQL_BOTH);
}
return mysql_fetch_array($this->result);
}
public function fetch_object() {
return mysql_fetch_object($this->result);
}
public function field_name($index) {
return mysql_field_name($this->result, $index);
}
public function num_fields() {
return mysql_num_fields($this->result);
}
public function num_rows() {
return mysql_num_rows($this->result);
}
}
?>