<HTML><HEAD></HEAD>
<BODY dir=ltr>
<DIV dir=ltr>
<DIV style="FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: 12pt">
<DIV>Bacana ... acho que tratamento e verificação devem estar em ambos os lados 
já que o server sempre estará “exposto” de alguma forma.</DIV>
<DIV> </DIV>
<DIV>Outra coisa importante, essa forma de salvar dados proposta pelo artigo é a 
abordagem mais simples possível a fim de se demonstrar o uso geral do componente 
dhtmlxGrid. Aconselho a ler a doc como por exemplo em <A 
href="http://docs.dhtmlx.com/doku.php?id=dhtmlxgrid:toc#saving_data"><FONT 
face="Times New Roman">http://docs.dhtmlx.com/doku.php?id=dhtmlxgrid:toc#saving_data</FONT></A><FONT 
face="Times New Roman"> </FONT><FONT face=Calibri>. Lá você encontrará como 
salvar e validar dados já usando o que a framework oferece.</FONT></DIV>
<DIV> </DIV>
<DIV>Uma outra observação</DIV>
<DIV> </DIV>
<DIV>mygrid.attachEvent("onEditCell", function(state, id, campo, valor , 
valorantigo)</DIV>
<DIV>{</DIV>
<DIV>                
if(state == 2)</DIV>
<DIV>                
{</DIV>
<DIV> </DIV>
<DIV>                
}</DIV>
<DIV>});</DIV>
<DIV> </DIV>
<DIV>Na realidade esse evento onEditCell é indicado para validação. State 2 
significa que a celula de edicao ja se encontra aberta e está pronta para ser 
alterada ...</DIV>
<DIV> </DIV>
<DIV style="FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: 12pt">Eduardo 
Almeida - Engenharia de Software<BR>eduardo@web2solutions.com.br - 27 3361-2050 
/ 27 9839 3755<BR><BR>WEB2 Solutions - Inovando, sempre!</DIV>
<DIV 
style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none">
<DIV style="FONT: 10pt tahoma">
<DIV> </DIV>
<DIV style="BACKGROUND: #f5f5f5">
<DIV style="font-color: black"><B>From:</B> <A title=jniltinho@gmail.com 
href="mailto:jniltinho@gmail.com">Jose Nilton</A> </DIV>
<DIV><B>Sent:</B> Monday, August 06, 2012 1:29 PM</DIV>
<DIV><B>To:</B> <A title=saopaulo-pm@mail.pm.org 
href="mailto:saopaulo-pm@mail.pm.org">saopaulo-pm@mail.pm.org</A> </DIV>
<DIV><B>Subject:</B> Re: [SP-pm] Grid JSON utf8.</DIV></DIV></DIV>
<DIV> </DIV></DIV>
<DIV 
style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none">Sim 
eu entendi esse ponto. 
<DIV> </DIV>
<DIV>Também fiz uma alteração no js da app:</DIV>
<DIV> </DIV>
<DIV>
<DIV>                
if(state == 2)</DIV>
<DIV>                
{</DIV>
<DIV>                        
// atualiza os campos</DIV>
<DIV>                        
function Result(result){</DIV>
<DIV>                            
mygrid.cells(id, campo).setValue(valor);</DIV>
<DIV>                        
}</DIV>
<DIV> </DIV>
<DIV><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span></SPAN>var campos = 
{</DIV>
<DIV><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span></SPAN>1: "nome",</DIV>
<DIV><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span></SPAN>2: 
"endereco",</DIV>
<DIV><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span></SPAN>3: 
"bairro",</DIV>
<DIV><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span></SPAN>4: 
"cidade",</DIV>
<DIV><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span></SPAN>5: 
"estado",</DIV>
<DIV><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span></SPAN>6: "cep",</DIV>
<DIV><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span></SPAN>7: 
"telefone"</DIV>
<DIV><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span></SPAN>};</DIV>
<DIV> </DIV>
<DIV><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span></SPAN>//Chamada para 
Gravar os dados</DIV>
<DIV><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span></SPAN>var dados = 
"id="+id+"&valor="+valor+"&campo=" + campos[campo];</DIV>
<DIV>                        
dhtmlxAjax.post("/grid/alterar",encodeURI(dados), Result);</DIV>
<DIV><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span></SPAN></DIV>
<DIV>                
}</DIV></DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>Mas prefiro tratar no Backend, pois nosso codigo HTML fica limpo e fácil de 
ser lido.</DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>O que você acha ?</DIV>
<DIV> </DIV>
<DIV>Obrigado pela dica.</DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV><BR><BR>
<DIV class=gmail_quote>Em 6 de agosto de 2012 13:18, Eduardo Almeida <SPAN 
dir=ltr><<A href="mailto:eduardo@web2solutions.com.br" 
target=_blank>eduardo@web2solutions.com.br</A>></SPAN> escreveu:<BR>
<BLOCKQUOTE 
style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" 
class=gmail_quote>
  <DIV dir=ltr>
  <DIV dir=ltr>
  <DIV style="FONT-FAMILY: 'Calibri'; FONT-SIZE: 12pt">
  <DIV>José Nilton ...</DIV>
  <DIV class=im>
  <DIV> </DIV>
  <DIV>>> <B>$alt->update(</B></DIV>
  <DIV>>>     <B>{</B></DIV>
  <DIV>>>         <B>$campo => 
  qq{$valor}</B></DIV>
  <DIV>>>     <B>}</B></DIV>
  <DIV>>> <B>);</B></DIV>
  <DIV><STRONG><FONT face="Times New Roman"></FONT></STRONG> </DIV></DIV>
  <DIV><FONT face="Times New Roman">Só uma observação: atenção com a validação e 
  tratamento ... ex: datas, valores monetários, etc ...</FONT></DIV>
  <DIV><FONT face="Times New Roman"></FONT> </DIV>
  <DIV><FONT face="Times New Roman">Por exemplo, suponhamos que você está 
  alterando uma coluna na grid que armazena valores monetários em real, ex: 
  1,99, o seu banco é um pgsql e a coluna na tabela é do tipo numeric, seja no 
  client, ou no server,  talvez você tenha que “tratar” o novo valor antes 
  de salvá-lo.</FONT></DIV>
  <DIV><FONT face="Times New Roman"></FONT> </DIV>
  <DIV><FONT face="Times New Roman">Meus cents</FONT></DIV>
  <DIV class=im>
  <DIV> </DIV>
  <DIV style="FONT-FAMILY: 'Calibri'; FONT-SIZE: 12pt">Eduardo Almeida - 
  Engenharia de Software<BR><A href="mailto:eduardo@web2solutions.com.br" 
  target=_blank>eduardo@web2solutions.com.br</A> - 27 3361-2050 / 27 9839 
  3755<BR><BR>WEB2 Solutions - Inovando, sempre!</DIV></DIV>
  <DIV 
  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none">
  <DIV style="FONT: 10pt tahoma">
  <DIV> </DIV>
  <DIV style="BACKGROUND: #f5f5f5">
  <DIV><B>From:</B> <A title=jniltinho@gmail.com 
  href="mailto:jniltinho@gmail.com" target=_blank>Jose Nilton</A> </DIV>
  <DIV><B>Sent:</B> Monday, August 06, 2012 10:15 AM</DIV>
  <DIV><B>To:</B> <A title=saopaulo-pm@mail.pm.org 
  href="mailto:saopaulo-pm@mail.pm.org" 
  target=_blank>saopaulo-pm@mail.pm.org</A> </DIV>
  <DIV><B>Subject:</B> Re: [SP-pm] Grid JSON utf8.</DIV></DIV></DIV>
  <DIV> </DIV></DIV>
  <DIV>
  <DIV class=h5>
  <DIV 
  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none">
  <DIV>Eduardo o codigo de alterar pode ser escrito dessa forma ?</DIV>
  <DIV> </DIV>
  <DIV>
  <DIV>sub alterar :Local {</DIV>
  <DIV>      my ( $self, $c ) = @_;</DIV>
  <DIV> </DIV>
  <DIV>      # POST</DIV>
  <DIV>      my $id = $c->req->param('id') ? 
  $c->req->param('id') : '';</DIV>
  <DIV>      my $valor = $c->req->param('valor') 
  ? $c->req->param('valor') : '';</DIV>
  <DIV>      my $campo = $c->req->param('campo') 
  ? $c->req->param('campo') : '';</DIV>
  <DIV> </DIV>
  <DIV>      # seleciona pessoa para alterar</DIV>
  <DIV>      my $alt = 
  $c->model('DB')->resultset('Pessoa')->find($id);</DIV>
  <DIV> </DIV>
  <DIV><B>      # alterar campo nome</B></DIV>
  <DIV><B>      if($campo =~ 
  /(nome|endereco|bairro|cidade|estado|cep|telefone)/){</B></DIV>
  <DIV><B>         
  $alt->update(</B></DIV>
  <DIV><B>            
  {</B></DIV>
  <DIV><B>                
  $campo => qq{$valor}</B></DIV>
  <DIV><B>            
  }</B></DIV>
  <DIV><B>         );</B></DIV>
  <DIV><B>      }</B></DIV>
  <DIV> </DIV>
  <DIV> </DIV>
  <DIV>      $c->forward('View::JSON');</DIV>
  <DIV>}</DIV></DIV>
  <DIV> </DIV>
  <DIV> </DIV>
  <DIV>E o que significa isso:</DIV>
  <DIV> </DIV>
  <DIV>sub alterar <B>:Loca</B>l {</DIV>
  <DIV> </DIV>
  <DIV> </DIV>
  <DIV>O escopo :Local nessa função ?</DIV>
  <DIV> </DIV>
  <DIV> </DIV>
  <DIV> </DIV><BR><BR>
  <DIV class=gmail_quote>Em 5 de agosto de 2012 23:44, Eduardo Almeida <SPAN 
  dir=ltr><<A href="mailto:eduardo@web2solutions.com.br" 
  target=_blank>eduardo@web2solutions.com.br</A>></SPAN> escreveu:<BR>
  <BLOCKQUOTE 
  style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" 
  class=gmail_quote>
    <DIV dir=ltr>
    <DIV dir=ltr>
    <DIV style="FONT-FAMILY: 'Calibri'; FONT-SIZE: 12pt">
    <DIV>DHTMLX++</DIV>
    <DIV> </DIV>
    <DIV>Opa, obrigado, mas eu só ajudei com teoria do DHTMLX ... o mérito é do 
    Lucas1 que escreveu o artigo ...</DIV>
    <DIV> </DIV>
    <DIV>À disposição,</DIV>
    <DIV> </DIV>
    <DIV style="FONT-FAMILY: 'Calibri'; FONT-SIZE: 12pt">Eduardo Almeida - 
    Engenharia de Software<BR><A href="mailto:eduardo@web2solutions.com.br" 
    target=_blank>eduardo@web2solutions.com.br</A> - 27 3361-2050 / 27 9839 
    3755<BR><BR>WEB2 Solutions - Inovando, sempre!</DIV>
    <DIV 
    style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none">
    <DIV style="FONT: 10pt tahoma">
    <DIV> </DIV>
    <DIV style="BACKGROUND: #f5f5f5">
    <DIV><B>From:</B> <A title=jniltinho@gmail.com 
    href="mailto:jniltinho@gmail.com" target=_blank>Jose Nilton</A> </DIV>
    <DIV><B>Sent:</B> Sunday, August 05, 2012 6:39 PM</DIV>
    <DIV><B>To:</B> <A title=saopaulo-pm@mail.pm.org 
    href="mailto:saopaulo-pm@mail.pm.org" 
    target=_blank>saopaulo-pm@mail.pm.org</A> </DIV>
    <DIV><B>Subject:</B> [SP-pm] Grid JSON utf8.</DIV></DIV></DIV>
    <DIV> </DIV></DIV>
    <DIV 
    style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none">
    <DIV>
    <DIV>
    <DIV> </DIV>
    <DIV>Olá a todos, estou seguindo esse tutorial:</DIV>
    <DIV><A href="http://sao-paulo.pm.org/equinocio/2011/set/14" 
    target=_blank>http://sao-paulo.pm.org/equinocio/2011/set/14</A></DIV>
    <DIV> </DIV>
    <DIV> </DIV>
    <DIV>Muito bom por sinal, conseguir seguir direitinho, funcionou 
    perfeitamente, mas na hora de Salvar a acentuação não funciona corretamente, 
    e está setado UTF-8, tanto para o JSON e HTML e conexão com o Banco.</DIV>
    <DIV> </DIV>
    <DIV>Parabens para quem escreveu e ajudou:</DIV>
    <DIV>
    <DIV>
    <P><STRONG>Eden Cardim</STRONG></P>
    <P><STRONG>José Eduardo Perotta de Almeida</STRONG></P>
    <P><STRONG>Lucas Tiago de Moraes</STRONG></P></DIV></DIV>
    <DIV> </DIV>
    <DIV>Muito bom esse framework JS DHTMLX, </DIV>
    <DIV> </DIV>
    <DIV> </DIV>
    <DIV>Obrigado</DIV>
    <DIV> </DIV>
    <DIV> </DIV>-- 
    <BR>.................................................................<BR>  
    "Com Deus todas as coisas são possíveis"<BR></DIV></DIV>
    <HR>
    =begin disclaimer<BR>   Sao Paulo Perl Mongers: <A 
    href="http://sao-paulo.pm.org/" 
    target=_blank>http://sao-paulo.pm.org/</A><BR>SaoPaulo-pm mailing list: <A 
    href="mailto:SaoPaulo-pm@pm.org" 
    target=_blank>SaoPaulo-pm@pm.org</A><BR>L<<A 
    href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" 
    target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>=end 
    disclaimer<BR></DIV></DIV></DIV></DIV><BR>=begin disclaimer<BR>   
    Sao Paulo Perl Mongers: <A href="http://sao-paulo.pm.org/" 
    target=_blank>http://sao-paulo.pm.org/</A><BR>SaoPaulo-pm mailing list: <A 
    href="mailto:SaoPaulo-pm@pm.org" 
    target=_blank>SaoPaulo-pm@pm.org</A><BR>L<<A 
    href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" 
    target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>=end 
    disclaimer<BR><BR></BLOCKQUOTE></DIV><BR><BR clear=all>
  <DIV> </DIV>-- 
  <BR>.................................................................<BR>  
  "Com Deus todas as coisas são possíveis"<BR>
  <HR>
  =begin disclaimer<BR>   Sao Paulo Perl Mongers: <A 
  href="http://sao-paulo.pm.org/" 
  target=_blank>http://sao-paulo.pm.org/</A><BR>SaoPaulo-pm mailing list: <A 
  href="mailto:SaoPaulo-pm@pm.org" 
  target=_blank>SaoPaulo-pm@pm.org</A><BR>L<<A 
  href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" 
  target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>=end 
  disclaimer<BR></DIV></DIV></DIV></DIV></DIV></DIV><BR>=begin 
  disclaimer<BR>   Sao Paulo Perl Mongers: <A 
  href="http://sao-paulo.pm.org/" 
  target=_blank>http://sao-paulo.pm.org/</A><BR>SaoPaulo-pm mailing list: <A 
  href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</A><BR>L<<A 
  href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" 
  target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>=end 
  disclaimer<BR><BR></BLOCKQUOTE></DIV><BR><BR clear=all>
<DIV> </DIV>-- 
<BR>.................................................................<BR>  
"Com Deus todas as coisas são possíveis"<BR></DIV>
<P>
<HR>
=begin disclaimer<BR>   Sao Paulo Perl Mongers: 
http://sao-paulo.pm.org/<BR>SaoPaulo-pm mailing list: 
SaoPaulo-pm@pm.org<BR>L<http://mail.pm.org/mailman/listinfo/saopaulo-pm><BR>=end 
disclaimer<BR></DIV></DIV></DIV></BODY></HTML>