AJAX

Responder
oliveiros
Mensajes: 19
Registered for: 4 years 1 month
Brazil

AJAX

Mensaje por oliveiros »

Olá,

na v1, mandava um POST pelo AJAX e pegava essa informação com um oController:oRequest:Post( no CUSTOMER, na v2 isso muda? Pois não chega POST algum no CUSTOMER. Alguém já passou por isso?

Att.,

Oliveiros Junior

oliveiros
Mensajes: 19
Registered for: 4 years 1 month
Brazil

Mensaje por oliveiros »

Olá, só para esclarecer como estou fazendo:

a) No fomulário tenho um botão que chama a função save_configuracao();

Código: Seleccionar todo

cHTML += '<div class="row">'
          cHTML += ' <div class="col-sm-2" style="background-color:white;">'
          cHTML += '  <a id="btsave" class="btn btn-primary btn-sm btn-block text-white" href="#" onclick="save_configuracao()">Salvar</a>'
b) Na função tenho o ajax;

Código: Seleccionar todo

function save_configuracao(){
              var aTabela = [];
      
              aTabela.push( JSON.stringify( { 'id': $('#id').val() } ) );
 
              $.ajax({

               type: "POST",
                url: "http://localhost/etc/save_configuracao", 
           dataType: 'json',
            headers:{
      Authorization: Cookies.get("Zeus2020")
                    },
               data: {configuracao:aTabela}

               }).done(function(data,status) {
               
                if ( data.retorno ) {
                   oWnd.hide();
                   oWnd.modal('hide');

                   alert( 'Configura\u00e7\u00f5es salva com sucesso.' );
                }else{
 
                   alert( 'Aconteceu um erro. Tente mais tarde novamente1.' );
                }
               }).fail(function(xhr, status, error) {

                   alert( 'Aconteceu um erro. Tente mais tarde novamente2.' );
               });
              };
c) No index.prg tenho a rota save_configuracao;

Código: Seleccionar todo

DEFINE ROUTE 'save_configuracao'  URL 'save_configuracao'    CONTROLLER 'save_configuracao@customer.prg'   METHOD 'POST' OF oApp
d) No programa customer.prg tenho o METHOD save_configuracao;

Código: Seleccionar todo

METHOD Save_Configuracao( oController ) CLASS Customer
   local oCusto		 := CustomerModel():New()
   local aConfiguracoes 
   local aConfiguracao
   local hConfiguracao:= {=>}
   local lRetorno     := .f.
   local hRetorno     := {=>}
   local nX
   
   aConfiguracoes := oController:oRequest:Post('configuracao') 
 
   for nX = 1 to Len( aConfiguracoes )
       aConfiguracao := hb_jsonDecode( aConfiguracoes[ nX ] )
       
       hConfiguracao := { 'id' => aConfiguracao['id'] }
       
       lRetorno := oCusto:SaveConfiguracao( hConfiguracao )
   next

   hRetorno := { 'retorno' => lRetorno }

   oController:oResponse:SendJson( hRetorno )

RETURN nil 
*--------------------------------------------------------------------------------------------------* 
Estou utilizando o Mercury e ModHarbour V2.

Att.,

Oliveiros Junior

oliveiros
Mensajes: 19
Registered for: 4 years 1 month
Brazil

Mensaje por oliveiros »

Olá,

Descobri o que estava errado, era o envio dos dados dentro de uma tabela. Mandei somente o Json e funcionou.

Att,

Oliveiros Junior

ramirezosvaldo
Mensajes: 127
Registered for: 4 years 1 month
Mexico

Mensaje por ramirezosvaldo »

Bien!

Recuerda que hay dos mercury uno para la versión viejita y otro para la v2

Saludos

Responder