0

I'm trying to show a DIV to the user until he/she closes it. Once the user clicks close, the DIV remains close for 24 hours.

This is the working code that shows once every 24 hours. However, I'm not sure how to add the click function:

<?php
    if (!isset($_COOKIE['cookie'])) {
        setcookie('cookie', true, time() + 3600 * 24); // Save a cookie for 1 day
        echo '<div class="slideshow"><span class="close">close</span>Hello World</div>';
    }
?>
Elaine Byene
  • 3,868
  • 12
  • 50
  • 96
  • You add a button inside the `slideshow` div that calls a JS function which in turn removes the `sideshow` div from the DOM. – icecub May 22 '18 at 03:55

1 Answers1

1

you should try something like this.

$(document).ready(function() {

  // If the 'hide cookie is not set we show the message
  if (!readCookie('hide')) {
    $('#popupDiv').show();
  }

  // Add the event that closes the popup and sets the cookie that tells us to
  // not show it again until one day has passed.
  $('#close').click(function() {
    $('#popupDiv').hide();
    createCookie('hide', true, 1)
    return false;
  });

});

// ---
// And some generic cookie logic
// ---
function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else var expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

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

function eraseCookie(name) {
  createCookie(name,"",-1);
}

code taken from here.SEE

Rahul
  • 1,617
  • 1
  • 9
  • 18