Avatar billede sbay Nybegynder
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());
    }
Avatar billede olebole Juniormester
01. maj 2010 - 19:57 #1
<ole>

Med mindre man lige sidder med dine SQL- og klient-libraries, er der ikke store muligheder for at hjælpe dig  =)

/mvh
</bole>
Avatar billede sbay Nybegynder
01. maj 2010 - 20:02 #2
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);
    }

}

?>
Avatar billede sbay Nybegynder
01. maj 2010 - 20:03 #3
lidt mere i tvivl om hvad du mener med client libraries?
Avatar billede olebole Juniormester
01. maj 2010 - 20:59 #4
Jeg har stadig ingen anelse om, hvad der foregår i dine koder
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester