Ir para conteúdo
Fórum Script Brasil
  • 0

Cgi Que Usa Javascript


Guest Alexandre Provencio

Pergunta

Guest Alexandre Provencio

Olá pessoal,

Estou usando 2 funções javascript em meu CGI para pegar a posição do scroll no momento de um submit e restaurá-la para esta posição depois de um refresh(que é oque acontece após um submit). Estava tentando mandar como um campo hidden tipo:

<input type='hidden' name='scroll' value=funcaoQuePegaAPosicao() />

O problema é que não consigo acessar o valor desta função, o cgi recebe apenas a string "funcaoQuePegaAPosicao()".

Detalhe: Fora do Cgi as funções funcionam perfeitamente.

Valeu Pessoal

[ ]'s

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0
Guest Alexandre Provencio

Opa, obrigado pela ajuda companheiro, mas ainda não consegui, vou te dar mais detalhes de como está sendo feito o procedimento:

Este é o código do script, sendo que uso a getScrollPos para pegar a posição e scrollPage para setar a posição:

<script type='text/javascript'>
var ns4 = (document.layers)?true:false;
var ns6 = (document.getElementById)?true:false;
var ie4 = (document.all)?true:false;
var ie5 = false;
if (ie4) {
if ((navigator.userAgent.indexOf('MSIE 5') > 0) || (navigator.userAgent.indexOf('MSIE 6') > 0)) {
ie5 = true;
}
if (ns6) {
ns6 = false;
}
}
function getScrollPos() {
var offset = 0;
if ((ns4)||(ns6)) {
offset = window.pageYOffset;
} else {
offset = self.document.body.scrollTop;
}
return offset;
}
function scrollPage(value) {
window.scrollTo(0, value);
}
OK, o que eu fiz foi tirar o retorno de getScrollPos() e colocar a linha que você me passou ficando assim:
function getScrollPos() {
var offset = 0;
if ((ns4)||(ns6)) {
offset = window.pageYOffset;
} else {
offset = self.document.body.scrollTop;
}
document.getElementById('scro').value=offset;
}
e no CGI Fiz o seguinte
<input type='hidden' name='scroll' id='scro' />

aí mando imprimir a variável onde salvo scroll e ainda não aparece nada..comiti algum erro nas suas instruções?

[ ]'s

Link para o comentário
Compartilhar em outros sites

  • 0

<html>

<head>

<title>Untitled</title>

<script language="JavaScript" type="text/javascript">

<!--

var ns4 = (document.layers)?true:false;

var ns6 = (document.getElementById)?true:false;

var ie4 = (document.all)?true:false;

var ie5 = false;

if (ie4) {

if ((navigator.userAgent.indexOf('MSIE 5') > 0) || (navigator.userAgent.indexOf('MSIE 6') > 0)) {

ie5 = true;

}

if (ns6) {

ns6 = false;

}

}

function getScrollPos() {

var offset = 0;

if ((ns4)||(ns6)) {

offset = window.pageYOffset;

} else {

offset = self.document.body.scrollTop;

}

//document.getElementById('scro').value=offset;

alert(offset);

}

function scrollPage(value) {

window.scrollTo(0, value);

}

//-->

</script></head>

<body onclick="getScrollPos();">

<input type="text" name="teste" id="scro"/>

<script language="JavaScript" type="text/javascript">

<!--

for (i=1;i<100;i++){

document.write ('teste<br>');

}

//-->

</script>

</body>

</html>

amigo, faz este teste ae, rola a barra de rolagem e clica em qualquer parte da tela

aqui funfou direitinho

abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Alexandre Provencio

Fercosmig,

O script eu sei que funciona perfeitamente. Estou tendo problemas em mandar o valor da posição do scroll como um "value" pelo "input hidden", e assim finalmente poder jogar essa posição de uma variável JavaScript para uma variável do Clipper que é a linguagem que rola o CGI. Dexa eu ver se eu entendo o que você me propôs:

colocando isto na função

document.getElementById('scro').value=offset;
fará com que ela encontre 'scro' em
 <input type='hidden' name='scroll' id='scro' /> 
e substitua pelo valor encontrado certo? Mas aí ela não vai como um "value" de alguma coisa postada ou eu estou errado? Por que só assim eu consigo recuperar esse valor.. Tenho também que fazer uma chamada da função getScrollPos logo antes do
 <input type='hidden' name='scroll' id='scro' />

também certo?

Putz, estou vendo que dei uma travada nessa porcaria né..

[ ]'s

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Alexandre Provencio

Sim o Form está certo por consigo tem um

<input type='submit' name='botao' value='&xcod.'

para cada botao de cada registro, onde xcod é uma variavel com o codigo do botao que eu quero e &. é uma macro-substituição em Clipper ou seja o html entende o conteúdo da variável. Esse valor eu consigo recuperar normalmente para remontar o Cgi, por exemplo se o usuário clicou em um dos botoes monto uma tabela nova em baixo do registro que ele clicou de acordo com o botao que ele clicou, porém como você sabe o scroll não funciona na remontagem do Cgi.

Testei esse "input hidden" logo abaixo desse "input submit".

Para testar o scroll tentei imprimir seu valor na tela como consigo facilmente com o xcod que já funciona mas ele teima em não apresentar nenhum resultado(agora não mostra nada, no começo deste tópico ele mostrava getScrollPos em vez de seu valor).

?????? kkkkk

[ ]'s

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Alexandre Provencio

Companheiro, acabei de conseguir fazer funcionar o negócio do CGI.

Como? Bom como sempre a cagada é do usuário, mas algumas vezes é do programador! Eu tava mandando o valor desse scroll pra uma variável que só entende string e apesar de achar q podia funcionar porque já funcionava com o código do botão ela não rolava para o scroll...maldito Clipper!

De qualquer forma meus sinceros agradecimentos pela ajuda

[ ]'s

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Alexandre Provencio

Opa já tinha respondido que tinha dado certo mas acho que essa resposta se perdeu..

Bom mas para dar esclarecimentos aos amigos que consultarem esse tópico escrevo novamente:

As explicações de Fercosmig estavam perfeitas o problema era uma função interna do cgi (um que pega os dados submetidos e retorna o valor da variavel escolhida)que tinha problemas para entender inteiros, ai na hora de comparar valores tava dando pau..

Obrigado Fercosmig

[ ]'s

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...