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+++...

Cookie + Div
Started By Leandro Gonçalves, 24/07/2009, 14:40
2 replies to this topic
#1
Posted 24/07/2009, 14:40
#2
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
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.
Dentro da tag BODY, insira:
E por fim, a DIV em questão (exemplo):
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...
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)