Jump to content


Photo

Cookie + Div


  • Faça o login para participar
2 replies to this topic

#1 Leandro Gonçalves

Leandro Gonçalves

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Masculino
  • Localidade:Anapolis-GO

Posted 24/07/2009, 14:40

Boa tarde pessoal,

antes de postar, pesquisei bastante, tanto no Google, qnto aki no Forum, mas não achei uma solução. Consegui criar, ler e apagar o Cookie, mas, não aplicando a minha necessidade.

Na minha pagina em HTML tenho uma DIV onde ela inicialmente esta a mostra, nela, ha uma iframe chamando uma pagina em PHP com uma "enquete", apos 10 segundos , ou quando a pessoa clicar no botão "fechar" q inseri no topo da div, a mesma é "escondida". So para questão de informação, na enquete, ela "pega" o IP salva no Banco de Dados, com isso, o usuario nao vota + de 1 vez.
Ate aki tudo bem...

O que eu queria, era q, se a pessoa clicar no botão "fechar" inserido na DIV, significa q possivelmente ela não quer votar na enquete, com isso, seria gravado um cookie com validade de 1 dia ou mais. Com isso, assim q o usuario abrir o site novamente, essa DIV não iria aparecer, pois anteriormente ele optou por fechar a DIV.



Quem puder ajudar ae, vlws d+++...

#2 Alex Hiroshi

Alex Hiroshi

    Super Veterano

  • Ex-Admins
  • 4923 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 24/07/2009, 16:23

O fechar a div é só uma função que tira o display, não é? Sendo assim, basta colocar para gravar o cookie nessa função e quando a página você carrega, você verifica se esse cookie existe para mostrar ou não a div da enquete.
Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Ex-Administrador

#3 Leandro Gonçalves

Leandro Gonçalves

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Masculino
  • Localidade:Anapolis-GO

Posted 26/07/2009, 01:24

Bom, solucionei o problema, + gerei outro... heeh...

Abaixo segue a solução q encontrei e aki funfou:

Insira esse codigo JS dentro de HEAD.

function createCookie(name,value,days){ // FUNCAO PARA CRIAR O COOKIE   if (days){	var date = new Date();	date.setTime(date.getTime()+(days*24*60*60*1000)); // CRIA COOKIR COM VALIDADE DE 24HRS	var expires = "; expires="+date.toGMTString();   }   else var expires = "";   document.cookie = name+"="+value+expires+"; path=/";}function readCookie(name){   var flag = 0;   var dcmntCookie = document.cookie.split(';');    for(var i=0;i < dcmntCookie.length;i++){    var ck = dcmntCookie[i];   while (ck.charAt(0)==' '){       ck = ck.substring(1,ck.length);   }   if(ck){      cparts = ck.split('=');    if (cparts[0]==name){      flag=1;      document.getElementById('enquete').style.display="none";       document.getElementById('enquete').style.visibility="hidden";       break;   }  } }   if(!flag)       createCookie(name,"ENQUETE",1); //CONTEUDO DO COOKIE}function testCookie(name){   var flag = 0;   var dcmntCookie = document.cookie.split(';');    for(var i=0;i < dcmntCookie.length;i++){    var ck = dcmntCookie[i];   while (ck.charAt(0)==' '){       ck = ck.substring(1,ck.length);   }   if(ck){      cparts = ck.split('=');    if (cparts[0]==name){      flag=1;      document.getElementById('enquete').style.display="none";       document.getElementById('enquete').style.visibility="hidden";       break;   }  } }}

Dentro da tag BODY, insira:
<body onLoad="testCookie('ENQUETE_STATUS')">
Sendo que "ENQUETE_STATUS" é o nome do cookie.

E por fim, a DIV em questão (exemplo):

<div id="enquete" style="position:absolute; left:273px; top:211px; width:313px; height:245px; z-index:1; border: 1px none #000000; overflow: hidden;">   <div align="right"><font color="#FF0000" size="2"><strong><font face="Courier New, Courier, mono"><a href="#" onClick="MM_showHideLayers('enquete','','hide'), readCookie('ENQUETE_STATUS')"><img src="imagens/close.gif" width="12" height="12"></a></font></strong></font>   </div>  <iframe frameborder="0" width="303" height="240" src="enquete/index.php" marginheight="0" marginwidth="0" align="middle"></iframe></div>


Basicamente, o codigo acima faz o q eu queria, o seja, se o usuario clicar no botão fechar da DIV, q nada + é q um GIF, ele cria o cookie, ae qndo a pagina é carregada a função "onLoad" inserida na tag BODY verifica se existe o cookie; se existir, a DIV fica escondida.

Eis aki o outro problema gerado apos a inclusão da função do Cookie.

Nessa pagina, eu "chamo" um arquivo .js e outro .css, q faz o "preloader" da pagina.
Ele basicamente "joga" uma DIV branca, com um GIF no meio, e essa DIV so some da tela qndo todo itens da pagina foram carregados.

Essa função do "preloader" funcionava corretamente, mas, depois q inclui o "OnLoad" na tah BODY a pagina so fica com a DIV carregando...

Existe uma outra maneira de chamar a função q esta dentro de BODY, sem ser nessa tag?



Vlws aee...




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq