Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fabyo

DataGrid completo

Recommended Posts

E no caso de eu não ter uma campo data no meu grid que é o meu caso o que eu devo mudar pra salvar as alterações?

O ele me mostra tudo normal mais não salva nen cadastro novo nen os que eu edito .

 

alguem pode dar uma força ? to usando o grid 6

Compartilhar este post


Link para o post
Compartilhar em outros sites
Baixei aqui e notei algumas situações que não atendem por completo, por exemplo

 

Ele ordena por ordem somente os itens que estão aparecendo no grid, ou seja, se voce clicar pra ordenar, ele não joga do ultimo registro do BD para o primeiro, somente os 15 primeiros.

 

O campo pesquisa também funciona da mesma forma, ele nao varre o bd inteiro, somente os que aparecem no grid

 

Queria ter a opção onde o usuario não conseguisse editar, consegui deixar somente com o campo de busca, mas ele consegue editar.

 

Acontece essas situações mesmo que mencionei ou foi alguma coisa que mexi. fiz um teste em uma base com 3500 registros.

 

[]s

 

Sandro isso tudo que voce falou é só configuração, é simples fazer isso e faz parte do proprio extjs trabalhar assim

 

eu posso ordenar pelo datagrid ou posso ordenar pelo banco de dados, e a busca tbm, voce pode optar pela busca local ou remota.

 

e sobre a permissao do usario nao poder editar tbm é só configuração, mas pra isso recomendo você usar um sistema de login para o sistema saber separar quem pode ou nao editar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dúvida:

As metatags

<meta http-equiv="imagetoolbar" content="no" />

<meta http-equiv="Pragma" content="no-cache" />

é obrigatório o uso?

Para que serve essa lib json? Nunca vi ela nos meus 3anos de trabalho com php...

Ah mais uma coisinha, o calendário ta bugado, quando você clica no campo da data ali e clica no cançendáriozinho, como arruma isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

as meta tags nao são obrigatorias e para entender por que usar ou não, voce precisa entender o que cada uma faz

 

agora json é obrigatorio porque é o meio pelo qual javascript e PHP faz as transferencia de dados.

 

http://www.json.org/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora não ta Salvando...

Cotinuo usando o Modelo 6

Pra quem estiver lendo o post, o código completo do arquivo que estamos analizando, 'salvar.php' é:

 

<?php

include_once("JSON/JSON.php");

$json = new Services_JSON();

$dados = $json->decode($_POST["data"]);

 

mysql_connect("localhost", "root", "");

mysql_select_db("sistema");

 

for($i = 0; $i < count($dados); $i++){

$novo = isset($dados[$i]->newRecord) ? $dados[$i]->newRecord : false;

$id = isset($dados[$i]->id_usuario) ? $dados[$i]->id_usuario : false;

$nome = $dados[$i]->nome;

$email = $dados[$i]->email;

$data = isset($dados[$i]->data_cadastro) ? $dados[$i]->data_cadastro : '0000-00-00';

$news = $dados[$i]->news ? "1" : 0;

 

//$data = implode("-", array_reverse(explode("/", $data)));

if($novo){

$sql = "INSERT INTO usuarios (id_usuario, nome, email, data_cadastro, news)

VALUES (

NULL ,

'$nome',

'$email',

'$data' ,

'$news'

) ";

 

} else {

$sql = "UPDATE usuarios SET

nome = '$nome',

email = '$email',

data_cadastro = '$data',

news = '$news'

WHERE usuarios.id_usuario = $id";

 

}

 

mysql_query($sql);

}

 

echo "{success:true}";

?>

 

 

 

 

Fiz vários testes...

Como o resultado da ação do do arquivo 'salvar.php' é "invisível" criei um gerador de log pra ficar analisando o que está acontecendo por debaixo dos panos...

 

Bom, na segunda linha, o código $dados = $json->decode($_POST["data"]); passa os paramêtros que vêem por "POST"...

Exatamente isso:

[{\"nome\":\"JonasPoli\",\"email\":\"teste@wab.com.br\",\"news\":true,\"newRecord\":true,\"data_cadastro\":\"2007-09-06T00:00:00\"}]

 

tirando os \" fica assim:

[{'nome':'JonasPoli','email':'teste@wab.com.br','news':true,'newRecord':true,'data_cadastro':'2007-09-06T00:00:00'}]

 

...

 

Depois, quando o código chega no laço do "for" , ha sempre uma unica iteração a ser feita...

count($dados) sempre é 1.. mesmo quando são alterados vários registros

 

 

Como o valor do count($dados) sempre é 1, o código passa exatamente uma vez por ...

$novo = isset($dados[$i]->newRecord) ? $dados[$i]->newRecord : false;

$id = isset($dados[$i]->id_usuario) ? $dados[$i]->id_usuario : false;

$nome = $dados[$i]->nome;

$email = $dados[$i]->email;

$data = isset($dados[$i]->data_cadastro) ? $dados[$i]->data_cadastro : '0000-00-00';

$news = $dados[$i]->news ? "1" : 0;

 

E essa parte do código, sempre retorna

 

$novo =

$id =

$nome =

$email =

$data = 0000-00-00

$news = 0

 

e no final, echo "{success:true}"; sempre informa que deu tudo certo... mesmo não dando

 

Creio que estamos com algum problema na conversão dos dados que chegam pelo POST em uma ARRAY legível pelo sistema

Se alguém tiver o mesmo problema, e já tiver solucionado, por favor, me informe a solução

 

Obrigado pela atenção

Consegui.

Vou tentar passar o que aprendi quebrando a cabeça aqui com o firebug e um pouco de paciência.

A string que estava sendo passada pelo $_POST[data] estava com um formato estranho, no lugar das " (aspas) apareciam \" conforme abaixo:

 

[{\"nome\":\"nome\",\"email\":\"email\",\"news\":\"0\",\"newRecord\":true}]{success:true}

 

e o correto é ele tentar decodificar algo como:

 

[{"nome":"nome","email":"email","news":"0","newRecord":true}]{success:true}

 

O que eu fiz foi chamar uma função para remover essas \ antes de executar o decoder.

 

Outra coisa, json já é buit-in no php5, não precisa instanciar objeto nem nada, é só chamar a função json_decode($string);

 

 

Segue abaixo o meu código do salvar.php do exemplo6. Quem tiver problemas me avise que eu mando os arquivos completos.

 

/********************************************************************************

*********/

 

<?php

$dados = $_POST["data"];

 

$dados = str_replace ("\\\"", "\"",$dados);

 

$dados = json_decode(utf8_encode($dados));

 

mysql_connect("localhost", "root", "");

mysql_select_db("sistema");

 

for($i = 0; $i < count($dados); $i++){

$novo = isset($dados[$i]->newRecord) ? $dados[$i]->newRecord : false;

$id = isset($dados[$i]->id_usuario) ? $dados[$i]->id_usuario : false;

$nome = $dados[$i]->nome;

$email = $dados[$i]->email;

$data = isset($dados[$i]->data_cadastro) ? $dados[$i]->data_cadastro : '0000-00-00';

$news = $dados[$i]->news ? "1" : 0;

 

//$data = implode("-", array_reverse(explode("/", $data)));

if($novo){

$sql = "INSERT INTO usuarios (id_usuario, nome, email, data_cadastro, news)

VALUES (

NULL ,

'$nome',

'$email',

'$data' ,

'$news'

) ";

 

} else {

$sql = "UPDATE usuarios SET

nome = '$nome',

email = '$email',

data_cadastro = '$data',

news = '$news'

WHERE usuarios.id_usuario = $id";

 

}

 

mysql_query($sql);

}

 

echo "{success:true}";

?>

 

/********************************************************************************

************/

Compartilhar este post


Link para o post
Compartilhar em outros sites

no ex. datagrid6 to conseguindo deletar,buscar,fazer paginacao...mas nao consigo EDITAR E ADICIONAR....dá um erro no arquivo ext-all.js...

veifiquei no firebug:

missing ) in parenthetical
ext-all.js (Line 39)
ai nao sei oq ta errado pq nao mudei nada nesse arquivo...

meu $dados acho q ta certinho:

data[{"nome":"nonome","matricula":"125","cargo":"cargokkk","lotacao":"lotacaojkjk","veiculo":"veiculkk",
"placa":"pla","cor":"coruuu","ano":"7545","plaqueta":"plaqukjk","telefone":"telefone45","observacao":"obserokoko","newRecord":true}]
se alguem poder ajudar agradeço...

 

opa! so pra avisar q ja foi [RESOLVIDO]!valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabyo... Excelente o seu exemplo!!! você está de parabéns. Olha só, estou quebrando a cabeça aqui para colocar 2 datagrid desse na mesma página com outros campos, pois estou usando abas para fazer um cadastro. Você tem uma solução pra mim?

 

 

Desde já agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara.. to ficando meio loko já..

 

não consigo fazer funcionar..

 

Usei o modelo 6, fiz umas modificações, to usando uma tabela direferente.

 

Quando eu clico em adicionar, beleza.. adiciona no grid e no banco tb..

 

Mas quando eu atualizo (no banco tem um monte de tuplas) não aparece nada. E tb não aparece "Nenhum resultado retornado"..

 

Eu mudei o arquivo que lista as tuplas (agora é "listar_emprestimos") e mudei no main.js, fiz um log dele.. e ele retorna certo (eu acho)

listar_emprestimos.php
stcCallback1001({"total":"1","resultado":[{"id":"1","pat1":"58078","pat2":"0","local":"Sajug - Sala 3","motivo":"Queimou","dh_saida":"2008-09-09","dh_dev":null}]})

Esta parte está certa?

ds = new Ext.data.Store({
		proxy:  new Ext.data.ScriptTagProxy({
			url:'listar_emprestimos.php'
		}),
		reader:  new Ext.data.JsonReader({
			root: 'resultado', 
			totalProperty: 'total',
			id: 'id'
		},
			[
				{name: 'pat1', mapping: 'pat1', type: 'integer'},
				{name: 'pat2', mapping: 'pat2', type: 'integer'},
				{name: 'local', mapping: 'local', type: 'string'},
				{name: 'motivo', mapping: 'motivo', type: 'string'},
				{name: 'dh_saida', mapping: 'dh_saida', type:'date', dateFormat:'Y-m-d'},
				{name: 'dh_dev', mapping: 'dh_dev', type:'date', dateFormat:'Y-m-d'},
				{name: 'id', mapping: 'id'}
			]
		)
	});

O q fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok.. funcionou, vlw...

 

Me diz uma coisa:

Um dos atribustos é uma FK. Como que eu faço um comboBox buscando os itens da tabela pai?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Fabyo, como faço para colocar 2 Datagrid's desses em uma mesma página. Tem como?

 

o esquema de datagrid nada impede de ter varios na mesma tela, veja um exemplo disso:

 

http://extjs.com/playpen/ext-2.0/examples/grid/grid3.html

Compartilhar este post


Link para o post
Compartilhar em outros sites
ok.. funcionou, vlw...

 

Me diz uma coisa:

Um dos atribustos é uma FK. Como que eu faço um comboBox buscando os itens da tabela pai?

 

monte um combobox e na store dele você pega da tabela que você precisa

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok.. funcionou, vlw...

 

Me diz uma coisa:

Um dos atribustos é uma FK. Como que eu faço um comboBox buscando os itens da tabela pai?

monte um combobox e na store dele você pega da tabela que você precisa

 

 

Aff.. eu tentei heim..

Li um monte de coisa aqui, mas não consegui =\

 

tem um exemplo?

 

Obrigado pela ajuda..

Compartilhar este post


Link para o post
Compartilhar em outros sites

a licença funciona assim, você pode usar a vontade e nao paga nada por isso, como você pode ver você faz o download completo do extjs

 

você so pagara uma licença se você comercializar seu sistema junto com o extjs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Heim.. continuei tentando montar o comboBox.. fiz um aki.. ficou mais ou menos..

fiz um igual ao /examples/grid/edit-grid.html

 

Mas o problema é que quando eu seleciono alguma opção, o grid mostra o value do campo, ao invéz de mostrar o texto entre <option></option>

 

Tem como fazer mostra o texto ao invez do value?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.