none
Salvar dados em uma variavel global RRS feed

  • Pergunta

  • Estou tentando salvar dados de um campo numa variavel global com javascritp

    Porem não esta funcionando.

    <script>
                           ValorTotal = "";
                           //caso queira manipular o valor guardar em variavel.
                           ValorTotal = document.getElementById('OrderTotal').innerHTML;
    
                         
    
    </script>

    E na minha outra pagina estou salvando dessa forma:

    <script>
                document.getElementById('Totallbl').innerHTML = ValorTotal;
    </script>

    Porem meu campo recebe em branco:

    <input id="Totallbl" type="text" />

    Podem me ajudar por favor

    segunda-feira, 13 de fevereiro de 2017 18:33

Respostas

  • Em nenhum momento voce esta "pegando" o valor do label. O que voce faz é passar a string "OrderTotal" para a sua funcao.

    Caso voce queira capturar o valor do label, faça assim

    setCookie("VALOR_GLOBAL", document.getElementById('<%=OrderTotal.ClientID%>').innerHTML, 1);

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    • Marcado como Resposta PauloRMedeiros quinta-feira, 16 de fevereiro de 2017 16:52
    quarta-feira, 15 de fevereiro de 2017 19:00
    Moderador
  • Dessa forma:

    var valor =  document.getElementById('<%= OrderTotal.ClientID %>').innerText;
    setCookie("VALOR_GLOBAL", valor, 1);


    João Paulo Gomes

    • Marcado como Resposta PauloRMedeiros quinta-feira, 16 de fevereiro de 2017 16:52
    quarta-feira, 15 de fevereiro de 2017 20:44

Todas as Respostas

  • Paulo, 

    Pelo que eu entendi, você tem a pagina A e a pagina B e quer passar dados através delas, é isso?
    Você não conseguira isso com Javascript puro, poís você não conseguirá passar os dados de uma pagina pra outra apenas com ele, já que o ciclo de vida do JS termina junto com a pagina,ou seja, quando a pagina B carrega, não existem mais as variaveis que você recuperou na pagina A.

    Você precisa:

    Opção 1: usar um Framework de Javascript que permita isso(como por exemplo, Angular)

    Opção 2:encontrar algum lugar pra persistir essa informação, como cookies ou LocalStorage , para ai recuperar na outra pagina.

    Opção 3: passar os dados vias post/get nas chamadas entre as paginas.
    Att,

    -
    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta







    segunda-feira, 13 de fevereiro de 2017 19:42
  • Boa Tarde Rodrigo

    Eu entendi que por javascript não da. 

    Então como eu faria usando cookie ?

    Tem como me ajudar ?

    Fico no aguardo.

    Obrigado.

    segunda-feira, 13 de fevereiro de 2017 19:50
  • Você você usar os dois métodos abaixo:

    function setCookie(cname, cvalue, exdays) {
        var d = new Date();
        d.setTime(d.getTime() + (exdays*24*60*60*1000));
        var expires = "expires="+ d.toUTCString();
        document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
    }


    function getCookie(cname) {
        var name = cname + "=";
        var decodedCookie = decodeURIComponent(document.cookie);
        var ca = decodedCookie.split(';');
        for(var i = 0; i <ca.length; i++) {
            var c = ca[i];
            while (c.charAt(0) == ' ') {
                c = c.substring(1);
            }
            if (c.indexOf(name) == 0) {
                return c.substring(name.length, c.length);
            }
        }
        return "";
    }

    Na primeira página você pode setar o valor do cookie:

    setCookie("VALOR_GLOBAL", "9999", 1);
    // "9999" é o seu valor
    // "VALOR_GLOBAL" é o nome da chave
    // 1 é a quantidade de dias para o valor expirar

    E na segunda página para ler o valor você usa:

    var valor = getCookie("VALOR_GLOBAL");

    Só uma observação, se você puder fazer isso usando alguma linguagem server side, sua aplicação ficará muito melhor. Dessa forma, usando cookies, é gambiarra.


    João Paulo Gomes http://blog.johnowl.com/




    • Editado John Owl terça-feira, 14 de fevereiro de 2017 21:56 inclusão de vírgula faltante
    segunda-feira, 13 de fevereiro de 2017 21:21
  • Concordo com o John, o usuário pode estar com os cookies desabilitados,apesar de muita gente fazer isso, não é uma pratica 100% elegante
    Acho mais jogo fazer por LocalStorage(no link que te passei tem exemplos e mostra a compatibilidade,tem navegador antigo que não é compativel),ou utilizar um framework js que possibilite isso.

    Att,
    -
    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta
    segunda-feira, 13 de fevereiro de 2017 22:52
  • Bom dia

    Estou tentando da forma que foi postado acima porem minha label não esta recebendo o valor.

    Minha pagina 1

     <script>
                          function setCookie(cname, cvalue, exdays)
                          {
                              var d = new Date();
                              d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
                              var expires = "expires=" + d.toUTCString();
                              document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
                          }
    
                          function getCookie(cname) {
                              var name = cname + "=";
                              var decodedCookie = decodeURIComponent(document.cookie);
                              var ca = decodedCookie.split(';');
                              for (var i = 0; i < ca.length; i++) {
                                  var c = ca[i];
                                  while (c.charAt(0) == ' ') {
                                      c = c.substring(1);
                                  }
                                  if (c.indexOf(name) == 0) {
                                      return c.substring(name.length, c.length);
                                  }
                              }
                              return "";
                          }
    
                          setCookie("VALOR_GLOBAL", "9999" 1);
                          // "9999" é o seu valor
                          // "VALOR_GLOBAL" é o nome da chave
                          // 1 é a quantidade de dias para o valor expirar
    
                      </script>

    Minha Pagina 2

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8" />
            <title>Código de exemplo do botão Comprar Agora</title>
            <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
            <script type="text/javascript">    
                jQuery(document).ready(function(){
                    //Pegamos o formulário do botão
                    var wpsBn = jQuery('#wps-bn');
     
                    //Interceptamos o clique no botão
                    wpsBn.click(function(e){
                        //Evitamos o comportamento padrão, de submeter o formulário
                        e.preventDefault();
     
                        //Mostramos a mensagem de redirecionamento
                        jQuery('<div class="sa_payPal_overlay" style="visibility:visible;; width:100%; height:100%; filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=1, StartColorStr=\'#88ffffff\', EndColorStr=\'#88ffffff\'); background: rgba(255,255,255,0.8); top:0; left:0; z-index: 999999;"><div style=" background: #FFF; background-image: linear-gradient(top, #FFFFFF 45%, #E9ECEF 80%);background-image: -o-linear-gradient(top, #FFFFFF 45%, #E9ECEF 80%);background-image: -moz-linear-gradient(top, #FFFFFF 45%, #E9ECEF 80%);background-image: -webkit-linear-gradient(top, #FFFFFF 45%, #E9ECEF 80%);background-image: -ms-linear-gradient(top, #FFFFFF 45%, #E9ECEF 80%);background-image: -webkit-gradient(linear, left top,left bottom,color-stop(0.45, #FFFFFF),color-stop(0.8, #E9ECEF));display: block;margin: auto;; margin-left:-220px; left:45%;top: 40%;text-align: center;color: #2F6395;font-family: Arial;padding: 15px;font-size: 15px;font-weight: bold;width: 530px;-webkit-box-shadow: 3px 2px 13px rgba(50, 50, 49, 0.25);box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 0px 5px;border: 1px solid #CFCFCF;border-radius: 6px;"><img style="display:block;margin:0 auto 10px" src="https://www.paypalobjects.com/en_US/i/icon/icon_animated_prog_dkgy_42wx42h.gif"><h2>Aguarde alguns segundos.</h2> <p style="font-size:13px; color: #003171; font-weight:400">Você está sendo redirecionado para um ambiente seguro do PayPal<br /> para finalizar seu pagamento.</p><div style="margin:30px auto 0;"><img src="https://www.paypal-brasil.com.br/logocenter/util/img/logo_paypal.png"/></div></div></div>').appendTo('body');
     
                        //Submetemos o formulário após a exibição da mensagem
                        wpsBn.submit();
    
                        //lblTotal Recebe o valor 999
                        document.getElementById('Totallbl').innerHTML = getCookie("VALOR_GLOBAL");
                  });
                });
            </script>
           
        </head>
        <body>
             <form target="_blank" id="wps-bn" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
                 <!--Tipo do botão-->
                 <input id="Totallbl" type="text" runat="server" />
                 <input type="hidden" name="cmd" value="_xclick" />
     
                 <!--Vendedor e URL de retorno, cancelamento e notificação-->
                 <input type="hidden" name="business" value="paypal@artsim.com.br" />
                 <input type="hidden" name="return" value="http://loja.com.br/retorno" />
                 <input type="hidden" name="cancel" value="http://loja.com.br/cancelamento" />
                 <input type="hidden" name="notify_url" value="http://loja.com.br/notificacao" />
     
                 <!--Internacionalização e localização da página de pagamento-->
                 <input type="hidden" name="charset" value="utf-8" />
                 <input type="hidden" name="lc" value="BR" />
                 <input type="hidden" name="country_code" value="BR" />
                 <input type="hidden" name="currency_code" value="BRL" />
     
                 <!--Informações sobre o produto e seu valor-->
                 <input type="hidden" name="amount" value="<%= ValorTotal %>" />
                 <input type="hidden" name="item_name" value="Servico" />
                 <input type="hidden" name="quantity" value="1" />
     
                <!--Botão para submissão do formulário-->
                <input type="image" src="https://www.paypalobjects.com/pt_BR/BR/i/btn/btn_buynowCC_LG.gif" />
            </form>
        </body>
    </html>
    

    Será  que é por causa da minha label esta dentro de um form com input ?

    Eu não entendi aonde eu coloco o meu Id da primeira pagina.

    Fico no aguardo.

    Obrigado.

    terça-feira, 14 de fevereiro de 2017 11:31
  • Faltou uma vírgula no código que passei:

    setCookie("VALOR_GLOBAL", "9999", 1);


    João Paulo Gomes http://blog.johnowl.com/

    terça-feira, 14 de fevereiro de 2017 21:55
  • Bom dia 

    Mas como eu jogo o valor da minha label:

    <asp:Label ID="OrderTotal" runat="server" Text='<%# FmtOrderTotal %>'></asp:Label>

    Dentro do comando acima ?

    setCookie("VALOR_GLOBAL", "9999", 1);

    Aguardo Retorno

    Obrigado.

    quarta-feira, 15 de fevereiro de 2017 12:59
  • Boa Tarde 

    Tenho o código abaixo para pegar o valor de um label e jogar dentro de um cookie.

    Porem não esta funcionando.

    O que esta errado ?

    <asp:Label ID="OrderTotal" runat="server" Text='<%# FmtOrderTotal %>'></asp:Label>
    
                      <script>
                          function setCookie(cname, cvalue, exdays)
                          {
                              var d = new Date();
                              d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
                              var expires = "expires=" + d.toUTCString();
                              document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
                          }
    
                          function getCookie(cname) {
                              var name = cname + "=";
                              var decodedCookie = decodeURIComponent(document.cookie);
                              var ca = decodedCookie.split(';');
                              for (var i = 0; i < ca.length; i++) {
                                  var c = ca[i];
                                  while (c.charAt(0) == ' ') {
                                      c = c.substring(1);
                                  }
                                  if (c.indexOf(name) == 0) {
                                      return c.substring(name.length, c.length);
                                  }
                              }
                              return "";
                          }
    
                          setCookie("VALOR_GLOBAL", 'OrderTotal', 1);

    Alguém pode me ajudar ?

    Obrigado

    quarta-feira, 15 de fevereiro de 2017 18:12
  • Em nenhum momento voce esta "pegando" o valor do label. O que voce faz é passar a string "OrderTotal" para a sua funcao.

    Caso voce queira capturar o valor do label, faça assim

    setCookie("VALOR_GLOBAL", document.getElementById('<%=OrderTotal.ClientID%>').innerHTML, 1);

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    • Marcado como Resposta PauloRMedeiros quinta-feira, 16 de fevereiro de 2017 16:52
    quarta-feira, 15 de fevereiro de 2017 19:00
    Moderador
  • Dessa forma:

    var valor =  document.getElementById('<%= OrderTotal.ClientID %>').innerText;
    setCookie("VALOR_GLOBAL", valor, 1);


    João Paulo Gomes

    • Marcado como Resposta PauloRMedeiros quinta-feira, 16 de fevereiro de 2017 16:52
    quarta-feira, 15 de fevereiro de 2017 20:44