Autor Tópico: [RESOLVIDO] Tratar variável global e campo dentro função javascript  (Lida 528 vezes)

flagomesbh

  • Intermediário
  • ***
  • Mensagens: 131
Olá.

Tenho uma mensagem de confirmação javascript no Form > onSubmit que somente deve ser exibida se a comparação entre conteúdo da variável global for maior do que o conteúdo do campo.

Como a função javascript recupera a variável global e o campo?

Tentei assim e não exibe a mensagem:

Código: [Selecionar]
if ({valor_recebido} < [valor_faltante]) {
   if (confirm('Valor a menor. Confirma Baixa Parcial?')){
      document.F1.retornojavascript.value = 'S';
   } else {
      document.F1.retornojavascript.value = 'N';
   }
}

Desde já, grata pela atenção.
« Última modificação: Junho 17, 2016, 11:02:44 am por flagomesbh »
Flávia Gomes
- Aprendiz -

Ronyan Alves

  • Administrator
  • Avançado
  • *****
  • Mensagens: 353
Re:Tratar variável global e campo dentro função javascript
« Responder #1 Online: Maio 27, 2016, 03:13:35 pm »
Os valores dos campos são acessados através da sintaxe abaixo:
document.F1.nome_campo.value

As variáveis globais são variáveis de sessão, ou seja, $_SESSION['variavel_global']
Assim, leia o artigo: http://stackoverflow.com/questions/17270962/how-to-reach-php-session-array-in-javascript
--

Ronyan Alves
Equipe Scriptcase

Jailton

  • Expert
  • *****
  • Mensagens: 2034
Re:Tratar variável global e campo dentro função javascript
« Responder #2 Online: Maio 27, 2016, 04:43:23 pm »
Faz assim que é mais fácil.

FORMULARIO: BOTÃO INCLUIR
Coloque no Evento: onScriptInit

Código: [Selecionar]
?>
<script>
window.onload = function() {
document.getElementById('sc_b_ins_b').onclick = alerta;
function alerta() {

var js_valor_recebido = "<?php echo {valor_recebido};?>";
var js_glo_valor_faltante = "<?php echo [glo_valor_faltante];?>";

if (js_valor_recebido<js_glo_valor_faltante) {

if (!confirm("Deseja Realmente Continuar??")) {
return false; // Fecha a Caixa do Javascript e volta para onde estava...
}

// CONTINUA... com a execução da rotina normal...
nm_atualiza('incluir');
}

} // fim: Function alerta()
};
</script>
<?php
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

flagomesbh

  • Intermediário
  • ***
  • Mensagens: 131
Re:Tratar variável global e campo dentro função javascript
« Responder #3 Online: Junho 03, 2016, 03:20:07 pm »
Faz assim que é mais fácil.

FORMULARIO: BOTÃO INCLUIR
Coloque no Evento: onScriptInit

Nível senior master hard sua sugestão. Preciso estudar pra entender kkkk

Obrigada!
Flávia Gomes
- Aprendiz -

Kleyber

  • Expert
  • *****
  • Mensagens: 2235
    • Email
Re:Tratar variável global e campo dentro função javascript
« Responder #4 Online: Junho 03, 2016, 03:29:29 pm »
kkkkkkkkkkkkkkkkk até pra mim também!!!
Kleyber Derick

ITIL® V3 Foundation Certified
Analista de Sistemas
São Luís - Maranhão
www.tkinformidia.net

Haroldo

  • Expert
  • *****
  • Mensagens: 6276
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Tratar variável global e campo dentro função javascript
« Responder #5 Online: Junho 03, 2016, 07:02:11 pm »
outra opção:
OnscriptInit:
Código: [Selecionar]
echo "
<scrpt>
var jsGlobal;
</script>
";
sc_btn_dislpay("btnAjaxGlobal", "off");
Em programação javascript:

crie uma função:  jsCapture(valor)
{
Código: [Selecionar]
jsGlobal=valor;
}


Crie um botão ajax:btnAjaxGlobal e no seu evento:
Código: [Selecionar]
sc_ajax_javascript("jsCapture",Array([MyGlobal]));

nos seus eventos do formulário:

Código: [Selecionar]
[MyGlobal]=[OutraGloabal] ou um valor qualquer


sc_ajax_javascript("sc_btn_ProcessaAjax",Array());

//ou
echo "<script>sc_btn_ProcessaAjax();</script>";


Dessa forma você consegue manipular o valor da global ou de qualquer variável  php e passar para o javascript dinamicamente.

Particularmente eu não gosto muito de indo em voltando entre sessões php e html (<? echo $var; ?>)

Código: [Selecionar]

echo "<script> var jsGlobal='[myGlobal]';</script>";



flagomesbh

  • Intermediário
  • ***
  • Mensagens: 131
Re:Tratar variável global e campo dentro função javascript
« Responder #6 Online: Junho 17, 2016, 10:01:44 am »
outra opção:
OnscriptInit:

Em programação javascript:

crie uma função:  jsCapture(valor)

Crie um botão ajax:btnAjaxGlobal e no seu evento:

nos seus eventos do formulário:

Dessa forma você consegue manipular o valor da global ou de qualquer variável  php e passar para o javascript dinamicamente.

Particularmente eu não gosto muito de indo em voltando entre sessões php e html (<? echo $var; ?>)

Haroldo,

Fiz como vc postou (usando o evento onValidate) e fiquei com algumas dúvidas:

1) Assim que abre o formulário está apresentando no canto superior esquerdo o texto

Código: [Selecionar]
var jsGlobal;

É assim mesmo?

2) Se o botão é btnAjaxGlobal devo ajudar a macro sc_ajax_javascript pra passar "sc_btn_Ajax_Global" ao invés de "sc_btn_ProcessaAjax"? E devo passar minhas globais no parâmetro "Array()"?

3) Como seria a leitura desse array do lado js?

Desde já, grata pela atenção mais uma vez.
Flávia Gomes
- Aprendiz -

flagomesbh

  • Intermediário
  • ***
  • Mensagens: 131
Re:Tratar variável global e campo dentro função javascript
« Responder #7 Online: Junho 17, 2016, 11:02:26 am »
A solução que achei foi um "ajuste técnico" com base na resposta do Ronyan, mas sem usar sessão:

Os valores dos campos são acessados através da sintaxe abaixo:
document.F1.nome_campo.value

As variáveis globais são variáveis de sessão, ou seja, $_SESSION['variavel_global']
Assim, leia o artigo: http://stackoverflow.com/questions/17270962/how-to-reach-php-session-array-in-javascript

Criei um campo e atribuí o valor da variável global a ele:
Código: [Selecionar]
{faltante} = ROUND([valor_faltante], 2);

O acesso no javascript ficou assim:
Código: [Selecionar]
var js_glo_valor_faltante = document.F1.faltante.value;

Obrigada a todos pela ajuda!
« Última modificação: Junho 17, 2016, 11:04:05 am por flagomesbh »
Flávia Gomes
- Aprendiz -