Changes between Version 6 and Version 7 of WF/UtilizacaodeAjaxemprocessos


Ignore:
Timestamp:
11/28/07 14:39:38 (16 years ago)
Author:
viani
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WF/UtilizacaodeAjaxemprocessos

    v6 v7  
    265265</script> 
    266266}}} 
     267 
     268Agora um outro exemplo, que faz acesso a banco de dados: 
     269 
     270{{{ 
     271{wf_ajax_init} 
     272 
     273<script language="javascript"> 
     274 
     275{literal} 
     276 
     277function alterarValor(externoID, p_usuario, p_data, p_valor) 
     278{ 
     279        var resultAlterarValor = function(data) 
     280        { 
     281                if (data['valor']['data']['erro']) 
     282                { 
     283                        alert(data['valor']['data']['erro']); 
     284                        /* trata o erro */ 
     285                } 
     286                else 
     287                { 
     288                        var externo = $(externoID); 
     289                        externo.innerHTML = data['valor']['data']['valor']; 
     290                } 
     291        } 
     292 
     293        var nc = new NanoController(); 
     294        nc.setWfUrl(); 
     295        nc.setSuccessHandler(resultAlterarValor); 
     296        nc.addVirtualRequest('valor', 
     297                { 
     298                        action : 'definir_valores', 
     299                        mode   : 'valor' 
     300                }, 
     301                { 
     302                        usuario: p_usuario, 
     303                        data_hora: p_data, 
     304                        valor: p_valor 
     305                }); 
     306        nc.sendRequest(); 
     307        $(externoID).innerHTML = '<font color="grey">atualizando..</font>'; 
     308} 
     309}}} 
     310 
     311A classe php invocada por este código !JavaScript seria: (class.ajax.definir_valores.php) 
     312 
     313{{{ 
     314<?php 
     315class definir_valores 
     316{ 
     317        var $db; 
     318        var $schema; 
     319 
     320        function definir_valores() 
     321        { 
     322                $this->db = wf_create_object('wf_db'); 
     323                $this->db->connect(); 
     324                $this->schema = "ligacoes_telefonicas"; 
     325        } 
     326 
     327        function valor($params) 
     328        { 
     329                $output = array(); 
     330 
     331                $valor = str_replace(",", ".", str_replace(".", "", $params['valor'])); 
     332                $usuario = (int) $params['usuario']; 
     333                $data_hora = $params['data_hora']; 
     334 
     335                if (!is_numeric($valor)) 
     336                        $output['erro'] = """ . $params['valor'] . "" é um valor inválido"; 
     337                else 
     338                { 
     339                        $valor = (double) $valor; 
     340                        $sqlStatement = "UPDATE {$this->schema}.ligacao_telefonica SET valor = ? WHERE (data_hora = ?) AND (usuario = ?)"; 
     341                        $resultado = $this->db->query($sqlStatement, array($valor, $data_hora, $usuario)); 
     342                        $this->db->disconnect(); 
     343                        if ($resultado) 
     344                                $output['valor'] = $params['valor']; 
     345                        else 
     346                                $output['erro'] = "Ocorreu um erro ao se tentar definir um valor para esta ligação."; 
     347                } 
     348                return $output; 
     349        } 
     350} 
     351?> 
     352}}}