تالار گفتمان nCIS.ir

نسخه‌ی کامل: چرا مدت زمان cookie کار نمی کنه ؟
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.

ABZiko

سلام، بنده قصد دارم بعد از کلیک شدن دکمه لایک یا Dislike، این دکمه ها رو به کار نشون ندم و بنویسم که نظر شما ثبت شد، به همین منظور اومدم بعد از Ajax یک Cookie ساختم و گفتم اگر کلیک شد نشونشون نده و یک پیام هم بده، کار می کنه ولی تنها مشکلم اینجاست که بعد از رفرش شدن دوباره، باز هم دکمه ها می آن و زمان در اون ها تاثیری نداره ... حالا مشکل از کجاست ؟
		$(document).ready(function(e){
			$(".like").click(function(e){
				$.post("Initial.php",
					{
						'id':<?php echo $thing['id']; ?>,
						'user':'like'}
					);
				document.cookie = "Like=siteUserLikes; expires=Thu, 18 Dec 2016 12:00:00 UTC";
				var x = document.cookie;
				if(x){
					document.getElementById('like').style.display="none";
					document.getElementById('disLike').style.display="none";
					document.getElementById('message').innerHTML = "Your Comment is submitted !"
				}else{
					document.getElementById('like').style.display="block";
					document.getElementById('disLike').style.display="block";
					document.getElementById('message').innerHTML = ""
				}
			});
		});
$(document).ready(function(e){
    $(".like").click(function(e){
       $.post("Initial.php",
           {
               'id':<?php echo $thing['id']; ?>,
               'user':'like'}
           );
       document.cookie = "Like=siteUserLikes; expires=18 Dec 2016 12:00:00";
       var x = document.cookie;
       if(x){
$(".like").css('display','none');
$(".disLike").css('display','none');
$(".message").innerHTML("Your Comment is submitted !");
       }else{
$(".like").css('display','block');
$(".disLike").css('display','block);
$(".message").remove();
       }
   });
});
منطقتون اشتباست


<!DOCTYPE html>
<html>
<head>
<script>
(function() {
	// create jsCookies function
	var jsCookies = {
		// this gets a cookie and returns the cookies value, if no cookies it returns blank ""
		get: function(c_name) {
			if (document.cookie.length > 0) {
				var c_start = document.cookie.indexOf(c_name + "=");
				if (c_start != -1) {
					c_start = c_start + c_name.length + 1;
					var c_end = document.cookie.indexOf(";", c_start);
					if (c_end == -1) {
						c_end = document.cookie.length;
					}
					return unescape(document.cookie.substring(c_start, c_end));
				}
			}
			return "";
		},

		// this sets a cookie with your given ("cookie name", "cookie value", "good for x days")
		set: function(c_name, value, expiredays) {
			var exdate = new Date();
			exdate.setDate(exdate.getDate() + expiredays);
			document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "" : "; expires=" + exdate.toUTCString());
		},

		// this checks to see if a cookie exists, then returns true or false
		check: function(c_name) {
			c_name = jsCookies.get(c_name);
				return c_name != null && c_name != ""
			
		}

	};
	window.jsCookies = jsCookies;
})();

window.onload=function(){ 	
		//check Comment is submitted
		if(jsCookies.check("Like")){
			document.getElementById('like').style.display="none";
			document.getElementById('dislike').style.display="none";
			document.getElementById('message').innerHTML = "Your Comment is submitted !";
		}
		
		//onclick
		document.getElementById('like').onclick=document.getElementById('dislike').onclick= function () {
			// check Cookie
			if(!jsCookies.check("Like")){
				//set Cookie	
				jsCookies.set("Like", "1", 1 );			
				document.getElementById('like').style.display="none";
				document.getElementById('dislike').style.display="none";
				document.getElementById('message').innerHTML = "Your Comment is submitted !";
			}
		};
}
</script>
</head>
<body>
	<div id="message">
		<button id="like">Like</button>
		<button id="dislike">disLike</button>
	</div>
</body>
</html>
وقتی با جی کوئری میشه نوشت چرا این همه کد بنویسیم
اصلا میشه این کدها رو عیب یابی هم کرد ؟
1: برای استفاده بهتر از کوکی به یه Cookies Management نیاز دارید
حالا چه بصورت
jQuery Cookies Management
یا
Pure Javascript Cookies Management

درهرصورت حجم کدنویسی فرقی نداره به جز چند خط

2: تا عیب یابی چی باشه!