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