Ir para conteúdo


Foto

Dúvida de Iniciante


Melhor Resposta Wemerson Januario , 13 September 2017 - 14:05

Opa dr, o seu problema é que a propriedade de configuração fields do Model está no singular. dever ser fields : [].

 

 

Fiz um fiddle com seu exemplo funcionando

 

https://fiddle.sench...tor&fiddle/26ji

 

 

Precisando de consultoria, treinamento para Ext JS 6.5 ai na empresa, conte comigo!

 

Espero ter ajudado!

Visualizar todo o conteúdo do post


  • Por favor, faça o login para responder
2 respostas neste tópico

#1 guilhermemfa

guilhermemfa

    Iniciante

  • Membros
  • Pip
  • 2 posts

Postado 13 September 2017 - 12:55

Bom dia pessoal!

Estou iniciando meus estudos em ExtJS 4 para dar manutenção em um sistema que foi desenvolvido aqui na empresa.

Estou realizando o treinamento da Loiane.

Estou fazendo passo a passo os 4 videos do CRUD

Montei o grid e estou tentando exibir os seguintes dados do banco MySQL: id,email,name,phone

Acredito ter feito tudo conforme nos vídeos. Perém, no meu grid somente aparece os dados da coluna id os demais não são preenchidos. segue os códigos abaixo:

//Minha MODEL - 'Contato.js'
Ext.define('ExtMVC.model.Contato',{
   extend: 'Ext.data.Model',
   field: [
      {name: 'id', type: 'int'},
      {name: 'email', type: 'string'},
      {name: 'name', type: 'string'},
      {name: 'phone', type: 'string'}
   ]
});
//Minha STORE - 'Contato.js'
Ext.define('ExtMVC.store.Contatos',{
   extend: 'Ext.data.Store',
   model:'ExtMVC.model.Contato', //Faz referencia à MODEL criada
   pageSize: 25,
   proxy:{
      type: 'ajax',
      url: 'php/listaContatos.php',
      reader: {
         type: 'json',
         root: 'data',
      },

      writer:{
         type: 'json',
         root:'data',
         encode: true
      }
   },
   autoLoad: true
}); 
//Meu GRID - 'ContatosGrid.js'
Ext.define('ExtMVC.view.ContatosGrid',{
   extend: 'Ext.grid.Panel',
   alias: 'widget.contatosgrid', //O alias sempre deve estar em letras minusculas
   store: 'ExtMVC.store.Contatos',
   title:'Contatos',
   iconCls: 'icon-grid',
   columns: [
      {
         text: 'ID',
         width: 35,
         dataIndex: 'id'
      },
      {
         text: 'Email',
         width: 170,
         dataIndex: 'email'
      },
      {
         text: 'Nome',
         width: 170,
         //flex: 1,
         dataIndex: 'name'
      },
      {
         text: 'Telefone',
         width: 100,
         dataIndex: 'phone'
      }
   ],

   dockedItems:[
      {
         xtype: 'toolbar',
         dock: 'top',
         items:[
            {
               xtype: 'button',
               text:'Novo',
               iconCls:'icon-add'
            },
            {
               xtype: 'button',
               text:'Excluir',
               iconCls:'icon-delete'
            },
            {
               xtype: 'pagingtoolbar',
               store: 'ExtMVC.store.Contatos',
               dock: 'top',
               displayInfo: true,
               emptyMsg: 'Nenhum contato encontrado'
            }

         ]
      }
   ]

});
//Minha CONEXÃO - 'connect.php'
<?php
   //nome do servidor
   $servidor = "localhost";

   //usuário do banco de dados
   $user = "root";

   //senha do banco de dados
   $senha = "";

   //nome da base de dados
   $db = "blog";

   //executa a conexão com o banco
   $conexao = mysqli_connect($servidor,$user,$senha,$db) or die (mysqli_error()) ;

?>
//'listaContatos.php'
<?php
   //chama o arquivo de conexão com o bd
   include("connect.php");
   
   //vai exibir somente os 20 primeiros registros
   $queryString = "SELECT * FROM contact where id<21";

   //consulta sql
   $query = mysqli_query($conexao,$queryString); //or die(mysqli_error());

   //faz um looping e cria um array com os campos da consulta
   $contatos = array();
   while($contato = mysqli_fetch_assoc($query)) {
      $contatos[] = $contato;
   }

   //encoda para formato JSON
   echo json_encode(array(
      "success" => mysqli_errno($conexao) == 0,
      "data" => $contatos
   ));
?>
//retorno do response
{"success":true,"data":[{"id":"1","email":"[email protected]","name":"Contact0","phone":"(000) 000-0000","numero":"1"},{"id":"2","email":"[email protected]","name":"Contact1","phone":"(000) 000-0000","numero":"45"},{"id":"3","email":"[email protected]","name":"Contact2","phone":"(000) 000-0000","numero":"3"},{"id":"4","email":"[email protected]","name":"Contact3","phone":"(000) 000-0000","numero":"8"},{"id":"5","email":"[email protected]","name":"Contact4","phone":"(000) 000-0000","numero":"7"},{"id":"6","email":"[email protected]","name":"Contact5","phone":"(000) 000-0000","numero":"3"},{"id":"7","email":"[email protected]","name":"Contact6","phone":"(000) 000-0000","numero":"5"},{"id":"8","email":"[email protected]","name":"Contact7","phone":"(000) 000-0000","numero":"9"},{"id":"9","email":"[email protected]","name":"Contact8","phone":"(000) 000-0000","numero":"22"},{"id":"10","email":"[email protected]","name":"Contact9","phone":"(000) 000-0000","numero":"12"},{"id":"11","email":"[email protected]","name":"Contact10","phone":"(000) 000-0000","numero":"6"},{"id":"12","email":"[email protected]","name":"Contact11","phone":"(000) 000-0000","numero":"2"},{"id":"13","email":"[email protected]","name":"Contact12","phone":"(000) 000-0000","numero":"4"},{"id":"14","email":"[email protected]","name":"Contact13","phone":"(000) 000-0000","numero":"10"},{"id":"15","email":"[email protected]","name":"Contact14","phone":"(000) 000-0000","numero":"3"},{"id":"16","email":"[email protected]","name":"Contact15","phone":"(000) 000-0000","numero":"7"},{"id":"17","email":"[email protected]","name":"Contact16","phone":"(000) 000-0000","numero":"4"},{"id":"18","email":"[email protected]","name":"Contact17","phone":"(000) 000-0000","numero":"1"},{"id":"19","email":"[email protected]","name":"Contact18","phone":"(000) 000-0000","numero":"9"}]}

Alguém poderia me ajudar?

Grato

 

 

 

 



#2 Wemerson Januario

Wemerson Januario

    Administrador Ext JS Brasil

  • Administrators
  • 830 posts
  • LocationGoiânia - GO

Postado 13 September 2017 - 14:05   Melhor Resposta

Opa dr, o seu problema é que a propriedade de configuração fields do Model está no singular. dever ser fields : [].

 

 

Fiz um fiddle com seu exemplo funcionando

 

https://fiddle.sench...tor&fiddle/26ji

 

 

Precisando de consultoria, treinamento para Ext JS 6.5 ai na empresa, conte comigo!

 

Espero ter ajudado!


Wemerson Januario
http://wemersonjanuario.com.br
Twitter: @januariocoder

 

Treinamento e Consultoria Ext JS. Qualifique-se já!


#3 guilhermemfa

guilhermemfa

    Iniciante

  • Membros
  • Pip
  • 2 posts

Postado 13 September 2017 - 19:22

Boa noite Wemerson!

Problema resolvido.

Estou começando agora e irei precisar utilizar bastante o fórum para sanar minhas dúvidas.

 

No momento preciso aprender ExtJS 4 para realizar manutenção nos sistemas da empresa que acabei de entrar. 

Em um outro momento com certeza irei entrar em contato para saber mais sobre seu treinamento em ExtJS 6.5

 

Muitíssimo obrigado pela força!






0 usuário(s) está(ão) lendo este tópico

0 membros, 0 visitantes, 0 membros anônimos