polix 0 Denunciar post Postado Setembro 6, 2007 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 Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Setembro 6, 2007 sobre sua primeira duvida que você mesmo respondeu, que era a configuração do banco, você mudou no salvar.php tbm? use firebug para debugar melhor o javascript Compartilhar este post Link para o post Compartilhar em outros sites
polix 0 Denunciar post Postado Setembro 6, 2007 Fabyo disse: sobre sua primeira duvida que você mesmo respondeu, que era a configuração do banco, você mudou no salvar.php tbm? use firebug para debugar melhor o javascript Os configurações estão certas... eu só coloquei no post a versão original porque o meu 'salvar.php' já esta cheia de códigos para a verificação de erros... O código do meu 'salvar.php' está assim: <?phpinclude_once("JSON/JSON.php");$json = new Services_JSON();$dados = $json->decode($_POST["data"]);// inicio codigo para erro $post_limpo=str_replace('\"',"'",$_POST["data"]);$quantidade=substr_count($post_limpo, '{');$somecontent='-inicio-------------------------------------------------------------------';// fim codigo erro mysql_connect("192.168.223.128", "polix", ""); 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; // inicio codigo para erro $somecontent=$somecontent.' post[data]= '.$_POST["data"].' $novo = '.$novo.' $id = '.$id.' $nome = '.$nome.' $email = '.$email.' $data = '.$data.' $news = '.$news.' count= '.count($dados).' post limpo = '.$post_limpo.' $quantidade = '.$quantidade.' $novo = '.$novo.' ';// fim codigo erro 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); }// inicio codigo para erro $filename = 'teste.txt';$somecontent=$somecontent.'--fim------------------------------------------------------------------';if (is_writable($filename)) { if (!$handle = fopen($filename, 'a')) { exit; } if (!fwrite($handle, $somecontent)) { exit; }}// fim codigo erro echo "{success:true}";?> Bom, agora estou usando o 'firebug' o arquivo 'salvar.php' recebe exatamente [{"nome":"nome","email":"email","news":"0","newRecord":true},{"nome":"nome","email":"email","news":"0","newRecord":true}] como eu já havia visto... mas o código count($dados) continua contando só um... a variavel $novo está sempre vazia... e os valores das demais variáveis estão definidos em... $novo = $id = $nome = $email = $data = 0000-00-00 $news = 0 Sempre assim. Não importa se eu altere um registro no grid, ou insira 200. Obrigado pelo esforço e desculpa o post gigante Compartilhar este post Link para o post Compartilhar em outros sites
dotcomboy 0 Denunciar post Postado Setembro 16, 2007 mto bom o exemplo.. tentei adaptar para minha base de dados, mas o grid não aparece: a principio errei algo na deficinção de " var cm = new Ext.grid.ColumnModel( " mudei o nome dos campos para os campos que eu preciso, mas o grid cisma em não aparecer, alguma ideia por onde começar a olhar o código? var cm = new Ext.grid.ColumnModel( [ { header: "Instância", dataIndex: 'instancia', width: 220, sortable: true, tooltip: 'Instância', editor: new Ext.grid.GridEditor(new Ext.form.TextField( { allowBlank: false, } )) }, { header: "Número do BA", dataIndex: 'nrba', width: 220, sortable: true, editor: new Ext.grid.GridEditor(new Ext.form.TextField( { allowBlank: false, } )) }, { header: "Observação", dataIndex: 'obs', width: 220, editor: new Ext.grid.GridEditor(new Ext.form.TextField( { allowBlank: false, } )) }, { header: "COD", dataIndex: 'cod', width: 220, hidden:true } ] ); cm.defaultSortable = true; Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Setembro 17, 2007 aparentemente essa parte esta certa, tenta debugar com o firebug pra ver exatamente o que ta acontecendo Compartilhar este post Link para o post Compartilhar em outros sites
jissa 0 Denunciar post Postado Setembro 17, 2007 Perfeito :) parabens Sr unica coisa que na pesquisa ele só faz na página corrente se o usuario quiser pesquisar algo no arquivo todo não da, tem como passar algum parametro para p sql para filtrar e mostrar o que atende o termo pesquisado e ajustar a numeração das paginas? achei um otimo exemplo em : http://www.ricardosantos.com.br/extjs/example-grid.php alguem ai teria os codigos deste ai para aprender mais? ou algo parecido, sem ser inline e pesquisar no banco de dados e não la lista Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Setembro 17, 2007 Tem sim http://ido.nl.eu.org/extdocsearch/ http://ido.nl.eu.org/pir/ http://ido.nl.eu.org/static/ext-1.0-alpha3...earch-grid.html Compartilhar este post Link para o post Compartilhar em outros sites
claytondf 0 Denunciar post Postado Outubro 2, 2007 Agradeço a todos aqui do forum e principalmente o Fabio pelo exemplos postados aqui. Tomara que o nosso amigo polix tenha resolvido seu problema pq eu fique até com dor de cabeça. [{\"nome\":\"JonasPoli\",\"email\":\"teste@wab.com.br\",\"news\":true,\"newRecord\":true,\"data_cadastro\":\"2007-09-06T00:00:00\"}] Resolvir o problema usando o comando. o comando retirar a barra invertida. $dados = $json->decode(stripslashes($_POST['data'])); segue meu código completo. <?php include_once("JSON/JSON.php"); $json = new Services_JSON(); //$dados = $json->decode($_POST["data"]); //var_dump($json->decode(stripslashes($_POST['data']))); //file_put_contents('log-salvar.txt',$dados); //file_put_contents('log-salvar.txt',$json); mysql_connect("localhost", "root", ""); mysql_select_db("sistema"); $dados = $json->decode(stripslashes($_POST['data'])); 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; if($novo){ $sql = "INSERT INTO usuarios (id_usuario, nome, email, data_cadastro, news) VALUES ( NULL , '$nome', '$email', NOW( ) , '$news' ) "; } else { $sql = "UPDATE usuarios SET nome = '$nome', email = '$email', data_cadastro = '2007-08-02', news = '$news' WHERE usuarios.id_usuario = $id"; } mysql_query($sql); } file_put_contents('log-salvar.txt',$sql); echo "{success:true}"; ?> Compartilhar este post Link para o post Compartilhar em outros sites
Phey 0 Denunciar post Postado Outubro 2, 2007 Olá, É possível fazer um formulário de cadastro e inserir o grid?Ex.: Nome:Endereço:Telefone:Pessoas para contato: (Esses dados serão inseridos no grid)PS:Copiei o seu grid, e ele nem conecta com a minha BD e já diz que foi salvo com sucesso.Gostaria de um helpObrigada Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Outubro 2, 2007 sim é possivel, meu exemplo numero 6 esta completo com inserir, editar e salvar Compartilhar este post Link para o post Compartilhar em outros sites
Phey 0 Denunciar post Postado Outubro 3, 2007 Já peguei o exemplo e deu alguns problemas, tvz por estar utilizando o php 4, ele não permite a edição. Aqui está o exemplo : Grid A minha dúvida é: como ele vai vincular todos os dados do grid com as informações que estarão fora do Grid? Obrigada pela resposta, Fabio! ATT Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Outubro 3, 2007 explica melhor o que você quer fazer Compartilhar este post Link para o post Compartilhar em outros sites
Phey 0 Denunciar post Postado Outubro 3, 2007 No meu formulário, haverá um mini cadastro (cliente, endereço...blablabla), e um grid onde diariamente alguém fará inserções (como um histórico, por exemplo). Esse histórico, ficará salvo no BD, além das outras informações evidentemente. Quando feita a consulta de um determinado cliente, ele retornará o Grid já preenchido com o histórico do cliente, além dos dados cadastrados. Tks http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Marcos_dev 0 Denunciar post Postado Outubro 3, 2007 AETeria como por um combobox em algumas das colunas/???espero respostaObrigado Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Outubro 3, 2007 sim só usar Ext.form.ComboBox() Compartilhar este post Link para o post Compartilhar em outros sites
Marcos_dev 0 Denunciar post Postado Outubro 3, 2007 bom funciono mais nao totalmenteExt.Form.ComboBox(oque por aki)eu keria quando a pessoa clicar pra editar, ele puxe do banco de dados as "secretarias" e jogar no combobox, como eu faria isso??Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Marcos_dev 0 Denunciar post Postado Outubro 3, 2007 outra perguntaeu to usando Ms Sql 2000 intau o "SELECT * FROM usuarios LIMIT $inicio, $limite" nao funciona teria como fazer isso de outra forma??obrigado Compartilhar este post Link para o post Compartilhar em outros sites
jissa 0 Denunciar post Postado Outubro 4, 2007 tem um exemplo bom em: http://extjs.com.br/forum/index.php/topic,198.0.html usuario : flp senha: xflp Um exemplo do sistema esta em : http://www.mattsoft.eti.br/projetos/flp/ no post do forum tem o link do download do codigo fonte .. Compartilhar este post Link para o post Compartilhar em outros sites
Leandro Maia 0 Denunciar post Postado Outubro 17, 2007 claytondf disse: Agradeço a todos aqui do forum e principalmente o Fabio pelo exemplos postados aqui. Tomara que o nosso amigo polix tenha resolvido seu problema pq eu fique até com dor de cabeça. [{\"nome\":\"JonasPoli\",\"email\":\"teste@wab.com.br\",\"news\":true,\"newRecord\":true,\"data_cadastro\":\"2007-09-06T00:00:00\"}] Resolvir o problema usando o comando. o comando retirar a barra invertida. $dados = $json->decode(stripslashes($_POST['data'])); Olá! Eu estava com o mesmo problema: No localhost funcionava, mas quando testava no servidor online com php mais recente, não gravava. Mas com o stripslashes deu certo, em ambos. Obrigado pela ajuda, Abraços. Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Outubro 17, 2007 é que tem servidores que deixam o magic_quotes ativado por padrao Compartilhar este post Link para o post Compartilhar em outros sites