|
|||
habe jetzt folgenden Countdown bei dem eigentlich alles klappt:
Javascript CountDown - little web things es gibt sogar eine Oncomplet Function, dass wenn der Timer durchgelaufen ist, eine Funktion ausgeführt wird. Javascript CountDown examples - little web things Habe diese jetzt angepasst: Code:
<script language="javascript" type="text/javascript"> jQuery(document).ready(function() { var day = <? echo $energy_datum_array[0]; ?>; var month = <? echo $energy_datum_array[1]; ?>; var year = <? echo $energy_datum_array[2]; ?>; var hour = <? echo $energy_uhrzeit_array[0]; ?>; var min = <? echo $energy_uhrzeit_array[1]; ?>; var sec = <? echo $energy_uhrzeit_array[2]; ?>; jQuery('#countdown_dashboard').countDown ({ targetDate: { 'day': day, 'month': month, 'year': year, 'hour': hour, 'min': min, 'sec': sec }, //onComplete function onComplete: function() { jQuery( "#live_update_energy" ).load( "inc/live_update_energy.php" ); jQuery('#countdown_dashboard').stopCountDown(); jQuery('#countdown_dashboard').setCountDown({ targetDate: { 'day': day, 'month': month, 'year': year, 'hour': hour, 'min': min, 'sec': sec + 300 } }); jQuery('#countdown_dashboard').startCountDown(); sec = sec + 300 } }) }); </script> Der PHP Code: PHP-Code:
Problem: Sobald der neue Counter aus der oncomplete Funktion ausgeführt wird und ich in diesem Zeitraum die Seite neu lade, wird immer wieder die Datei live_update_energy.php ausgeführt, da ich mich in der oncomplete funktion befinde. Hoffe das war verständlich. Könnt ihr mit bei meinem Problem helfen? Danke |
Sponsored Links |
|
||||
Du befindest dich nach einem Seiten-Reload nicht in der Oncomplete-Funktion da ist dann eher was im PHP falsch als im Script.
Aber wie wäre folgendes: hör auf täglich ein Script zu wechseln weil es nicht 100% das macht was du willst, schreib den Kram doch einmal selbst und gut ist. Die Ansätze hat man dir genannt. Aber wir sind hier nicht da dir bei deinen Problemen alles vorzukauen.
__________________
Hier ein immer gültiges Statement: Überarbeite deine Code, lerne die Grundlagen, widersprich mir nicht, wehre dich nicht, ich habe Recht, wir sind Lolgion, wir sind viele.. potato... All meine Angaben sind ohne Gewähr, es könnte also trotz meiner Unfehlbarkeit dazu kommen dass ich falsch liege www.richard-thiel.de | Müssen Websiten überall gleich ausschauen? |
Sponsored Links |
|
|||
wenn du richtig lesen würdest, müsstest du nicht meine Probleme vorkaufen, sondern könntest mir dabei auch helfen - dafür ist ein Forum gedacht.
ich befinde mich in der oncomplete funktion. allerdings wenn ich währenddessen die seite neulade, läd er mir jedes mal die dort enthaltene php funktion neu. das soll er natürlich nicht machen. |
|
|||
was kann ich euch denn noch zur Verfügung stellen, damit ihr es analysieren könnt. ich muss mich in der oncomplete function befinden.
habe nämlich testweise darin einen alert mit hinzugefügt und wenn ich dann jedes mal die Seite neulade, kommt diese alert Meldung. |
|
||||
Lad einen Testcase hoch, kann doch nicht so schwer sein etwas zu tun, was hier in den Regeln steht.
Zitat:
Aber ich wiederhole mich noch einmal du kannst nicht (wenn das Script korrekt laufen würde) im oncomplete-Statement sein. Um da zu sein, muss die Zeit falsch sein. Diese wird ja an dein Script übergeben. Aber hey, es ist dein Code, DU musst wissen was er macht, nicht wir
__________________
Hier ein immer gültiges Statement: Überarbeite deine Code, lerne die Grundlagen, widersprich mir nicht, wehre dich nicht, ich habe Recht, wir sind Lolgion, wir sind viele.. potato... All meine Angaben sind ohne Gewähr, es könnte also trotz meiner Unfehlbarkeit dazu kommen dass ich falsch liege www.richard-thiel.de | Müssen Websiten überall gleich ausschauen? |
|
|||
so habe euch jetzt mal nen case ohne Datenbankanbindung nachgebaut.
Dort kann man es sehr gut testen: hier der code der countdown.js Code:
/*! * jQuery Countdown plugin v1.0 * http://www.littlewebthings.com/projects/countdown/ * * Copyright 2010, Vassilis Dourdounis * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ (function($){ $.fn.countDown = function (options) { config = {}; $.extend(config, options); diffSecs = this.setCountDown(config); if (config.onComplete) { $.data($(this)[0], 'callback', config.onComplete); } if (config.omitWeeks) { $.data($(this)[0], 'omitWeeks', config.omitWeeks); } $('#' + $(this).attr('id') + ' .digit').html('<div class="top"></div><div class="bottom"></div>'); $(this).doCountDown($(this).attr('id'), diffSecs, 500); return this; }; $.fn.stopCountDown = function () { clearTimeout($.data(this[0], 'timer')); }; $.fn.startCountDown = function () { this.doCountDown($(this).attr('id'),$.data(this[0], 'diffSecs'), 500); }; $.fn.setCountDown = function (options) { var targetTime = new Date(); if (options.targetDate) { targetTime = new Date(options.targetDate.month + '/' + options.targetDate.day + '/' + options.targetDate.year + ' ' + options.targetDate.hour + ':' + options.targetDate.min + ':' + options.targetDate.sec + (options.targetDate.utc ? ' UTC' : '')); } else if (options.targetOffset) { targetTime.setFullYear(options.targetOffset.year + targetTime.getFullYear()); targetTime.setMonth(options.targetOffset.month + targetTime.getMonth()); targetTime.setDate(options.targetOffset.day + targetTime.getDate()); targetTime.setHours(options.targetOffset.hour + targetTime.getHours()); targetTime.setMinutes(options.targetOffset.min + targetTime.getMinutes()); targetTime.setSeconds(options.targetOffset.sec + targetTime.getSeconds()); } var nowTime = new Date(); diffSecs = Math.floor((targetTime.valueOf()-nowTime.valueOf())/1000); $.data(this[0], 'diffSecs', diffSecs); return diffSecs; }; $.fn.doCountDown = function (id, diffSecs, duration) { $this = $('#' + id); if (diffSecs <= 0) { diffSecs = 0; if ($.data($this[0], 'timer')) { clearTimeout($.data($this[0], 'timer')); } } secs = diffSecs % 60; mins = Math.floor(diffSecs/60)%60; hours = Math.floor(diffSecs/60/60)%24; if ($.data($this[0], 'omitWeeks') == true) { days = Math.floor(diffSecs/60/60/24); weeks = Math.floor(diffSecs/60/60/24/7); } else { days = Math.floor(diffSecs/60/60/24)%7; weeks = Math.floor(diffSecs/60/60/24/7); } $this.dashChangeTo(id, 'seconds_dash', secs, duration ? duration : 0); $this.dashChangeTo(id, 'minutes_dash', mins, duration ? duration : 0); $this.dashChangeTo(id, 'hours_dash', hours, duration ? duration : 0); $this.dashChangeTo(id, 'days_dash', days, duration ? duration : 0); $this.dashChangeTo(id, 'weeks_dash', weeks, duration ? duration : 0); $.data($this[0], 'diffSecs', diffSecs); if (diffSecs > 0) { e = $this; t = setTimeout(function() { e.doCountDown(id, diffSecs-1) } , 1000); $.data(e[0], 'timer', t); } else if (cb = $.data($this[0], 'callback')) { $.data($this[0], 'callback')(); } }; $.fn.dashChangeTo = function(id, dash, n, duration) { $this = $('#' + id); for (var i=($this.find('.' + dash + ' .digit').length-1); i>=0; i--) { var d = n%10; n = (n - d) / 10; $this.digitChangeTo('#' + $this.attr('id') + ' .' + dash + ' .digit:eq('+i+')', d, duration); } }; $.fn.digitChangeTo = function (digit, n, duration) { if (!duration) { duration = 0; } if ($(digit + ' div.top').html() != n + '') { $(digit + ' div.top').css({'display': 'none'}); $(digit + ' div.top').html((n ? n : '0')).slideDown(duration); } }; })(jQuery); und hier der code der index.php: PHP-Code:
So kann mans testen: 1. Seite aurufen: http://m.it-neuss.de/test/index.php 2. Timer 15 sek laufen lassen 3. Nach Ablauf des Timers, erhaltet ihr einen Alert "Oncomplete Funktion!" 4. Danach läuft der Timer wieder 15 sek. 5. Wenn Ihr jetzt innerhalb dieser 15 sek die Seite neu ladet, kommt immer wieder der o.g. Alert, obwohl der Timer nicht bei 0 sek angekommen ist. Und genau das ist mein Problem - allerdings weiß ich nicht woran es liegt. hoffe ihr finden den Fehler |
|
|||
nutze auch ff.
bei mir läuft es so nicht. erster countdown von 15 sek => bei 0 sek = alert zweiter coutdown von 15 sek => währenddessen lade ich die seite manuell neu - dabei kommt jetzt jedes mal die alert Meldung = das darf nicht sein also ein Bekannter von mir kann dies auch reproduzieren. Hier Mal ein Video: http://m.it-neuss.de/test/test.mov Geändert von SpecialFighter (07.04.2015 um 18:55 Uhr) |
Sponsored Links |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Counter auf htmlseiten einbinden | PHP-Freak | Serveradministration und serverseitige Scripte | 17 | 15.04.2009 23:12 |
Shtml auf jeder Seite einbinden - counter | iVx | Serveradministration und serverseitige Scripte | 1 | 13.09.2007 18:31 |
Counter | Despairing | Serveradministration und serverseitige Scripte | 2 | 15.08.2006 09:59 |
Suche einen Besucher Counter mit Reloadsperre | Tobias | (X)HTML | 3 | 26.01.2006 16:05 |
Counter mit CSS aufpeppen??? | Jollo | CSS | 3 | 26.12.2004 21:32 |