• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در مقدار ورودی تایمر پس از اتمام زمان آن
#1
سلام دوستان وقت بخیر
من یک مشکلی توی مبحث تایمر دارم.من یک تایمر دارم که شمارنده معکوس داره و یک ورودی زمان داره و از زمان الان تا اون زمان ورودی رو تایمر میندازه و وقتی که تایمرش تموم شد با ajax میره یکسری اطلاعات رو میگیره و توی صفحه آپدیت میکنه.در حالت کلی وقتی که صفحه لود میشه میره زمان ورودی رو از دیتابیس میخونه و همه چی درست انجام میشه.مشکل من زمانی شروع میشه که این تایمر به صفر که میرسه باید مجدد بیام بهش زمان ورودی بدم تا به صورت منفی تایمر نندازه.الان وقتی تایمر به صفر میرسه و میخواد ریست کنه باز همون زمان ورودی قبلی رو میگیره و به صورت منفی میاد تایمر میندازه.ابن رو هر کاری میتونستم کردم ولی نتونستم انجام بدم.با همون ajax زمان جدید رو از دیتابیس گرفتم به پارامترش پاس دادم ولی نشد که نشد.ممنون میشم کسی از دوستان اگر میتونه راهنمایی کنه

کد پی‌اچ‌پی:
تایمر رو به این صورت نشون میدم 
 
<div id="timer" name="timer"></div>  

زمان ورودی رو موقتاً به این صورت دارم میدم هنگام لود صفحه
 
<input hidden="hidden" type="text" name="downtime" id="downtime" value="<?php echo $featured->downtime ?>" />

اینم جاوا اسکریپ مورد نظر
<script>
var 
countDownDate="";
var 
downtime=$('#downtime').val();
countDownDate = new Date(downtime).getTime();
var 
setInterval(function (){

    var 
now = new Date().getTime();

    var 
distance countDownDate now;

    var 
hours Math.floor((distance % (1000 60 60 24)) / (1000 60 60));
    var 
minutes Math.floor((distance % (1000 60 60)) / (1000 60));
    var 
seconds Math.floor((distance % (1000 60)) / 1000);

    
document.getElementById("timer").innerHTML =hours ": "
    
minutes ": " seconds;

    if (
hours <=&& minutes<=&& seconds <= 0) {

    $.
ajax({
        
url'ajax.php',
        
success: function(data){
            $(
'#demo1').html(data);
            
DownDate=html(data);
             $(
'#downtime').html(data);
        },
        
error: function(){
        }
    });
    }

}, 
1000);

</
script

اگر روش بهتری هم سراغ دارین برا انجام این کار ممنون میشم بفرمایین.کاری که می خوام کنم دقیقا مثل تایمر پیشنهاد شگفت انگیز دیجی کالا هستش که وقتی تایمرش صفر میشه و میاد ریست میکنه میره کالاهای شگفت انگیز جدید رو میاره و تایمر ریست میشه بر اساس تاریخ جدید.
  پاسخ
تشکر شده توسط :
#2
حالا اصلا یک کار دیگه کنیم مثلا دیگه نیاد ورودی زمان رو از دیتابیس بگیره بیایم تایمر رو طوری تنظیم کنیم که خودش شروع کنه از 12 شب 24 ساعت کانتر بندازه و زمانی که به صفر رسید یعنی 12 شب فرداش مجدد ریست بشه و 24 ساعت کانتر بندازه.این کار رو چطور میشه انجام داد؟
  پاسخ
تشکر شده توسط :
#3
اینطوری حلش کردم

کد پی‌اچ‌پی:
<script>
var 
countDownDate="";
var 
DownDate="";
function 
faeture_timer(){
var 
counter setInterval(function (){
    
DownDate=$('#downtime').val();
    
countDownDate = new Date(DownDate).getTime();
    var 
now = new Date().getTime();

    var 
distance countDownDate now;

    var 
hours Math.floor((distance % (1000 60 60 24)) / (1000 60 60));
    var 
minutes Math.floor((distance % (1000 60 60)) / (1000 60));
    var 
seconds Math.floor((distance % (1000 60)) / 1000);

    
document.getElementById("timer").innerHTML =hours ": "
    
minutes ": " seconds;

     if (
hours <=&& minutes<=&& seconds <= 0) {

    $.
ajax({
        
url'ajax.php',
        
success: function(data){
            
clearInterval(counter);

            $(
'#feauter').html(data);

             $(
'#downtime').val(data);
            
setTimeout(faeture_timer,1000);
        },
        
error: function(){
        }
    });
    }


}, 
1000);
}
  
faeture_timer();
</
script
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان