php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS Probleme mit HTML5, Bootstrap oder jQuery ?

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 31-01-2010, 18:05
pingzaong
 Registrierter Benutzer
Links : Onlinestatus : pingzaong ist offline
Registriert seit: Apr 2005
Ort: Schweiz
Beiträge: 85
pingzaong ist zur Zeit noch ein unbeschriebenes Blatt
pingzaong eine Nachricht über Skype™ schicken
Standard CountUp - aktuellen Betrag anzeigen

Servus!

Ich möchte auf einer Pokerseite den aktuellen Jahresendpot anzeigen können, welcher ständig wächst. Dies soll auch so ersichtlich sein. Untenstehend ein CountUp-Script. Leider fängt der Counter wieder von vorne an zu zählen (resp. vom startAmount), wenn man die Seite aktualisiert. Wie kann man das ändern?

Code:
<script type="text/javascript">
function addCommas( sValue )
{
var sRegExp = new RegExp('(-?[0-9]+)([0-9]{3})');

while(sRegExp.test(sValue)) {
sValue = sValue.replace(sRegExp, '$1\'$2');
}
return sValue;
}

var startAmount = 5000;
var endAmount = 10000;
var 
timer = setInterval(addTime,404.494382022);
function addTime(){
if (endAmount > startAmount)
{
startAmount += 0.01;
}
document.getElementById('jackpot').innerHTML='CHF ' + addCommas(startAmount.toFixed(2));
}
</script>

Die Ausgabe wäre dann:
Code:
<div id="jackpot"></div>
Besten Dank für die Hilfe! Siehe auch Beispiel auf http://www.buy-in.ch
__________________
Hochachtungsvoll
pingzaong

Geändert von pingzaong (31-01-2010 um 18:07 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 31-01-2010, 19:41
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von pingzaong Beitrag anzeigen
Leider fängt der Counter wieder von vorne an zu zählen (resp. vom startAmount), wenn man die Seite aktualisiert. Wie kann man das ändern?
Per Ajax? Indem man die Daten serverseitig speichert und dann jedesmal neu aufruft?

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #3 (permalink)  
Alt 31-01-2010, 19:48
pingzaong
 Registrierter Benutzer
Links : Onlinestatus : pingzaong ist offline
Registriert seit: Apr 2005
Ort: Schweiz
Beiträge: 85
pingzaong ist zur Zeit noch ein unbeschriebenes Blatt
pingzaong eine Nachricht über Skype™ schicken
Standard

okay, das ist ein neues Gebiet für mich. Werde mich mal darüber schlau machen. Du weisst nicht garade spontan die Syntax?
__________________
Hochachtungsvoll
pingzaong
Mit Zitat antworten
  #4 (permalink)  
Alt 31-01-2010, 20:02
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Das Prinzip ist eigentlich ganz einfach. Also, du ziehst dir doch irgendwo her die Daten für das Depot. Oder? Wenn du die hast, so musst du die z.B. per SQL-Abfrage an dein JavaScript übergeben. Wahrscheinlich benötigst du dafür noch nicht mal Ajax.

Liefer mal weitere Infos dazu. Ich denke, so schwer wird das nicht werden. Außerdem glaube ich, dass du hier mit statischen Werten arbeitest:

PHP-Code:
var startAmount 5000;
var 
endAmount 10000
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #5 (permalink)  
Alt 31-01-2010, 20:17
pingzaong
 Registrierter Benutzer
Links : Onlinestatus : pingzaong ist offline
Registriert seit: Apr 2005
Ort: Schweiz
Beiträge: 85
pingzaong ist zur Zeit noch ein unbeschriebenes Blatt
pingzaong eine Nachricht über Skype™ schicken
Standard

Ja, bis jetzt wollte ich die Zahl wie folgt aus der Datenbank holen:

Code:
var startAmount = (<?php echo "$row[pot_min]"; ?>);
var endAmount = (<?php echo "$row[pot_max]"; ?>);
Klappt auch so weit, nur setzt es mir alles wieder zurück auf den Anfangswert, wenn ich F5 drücke. Geht da was ohne Ajax?
__________________
Hochachtungsvoll
pingzaong
Mit Zitat antworten
  #6 (permalink)  
Alt 31-01-2010, 20:58
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

wenn dieser Jackpot wirklich wächst, muss dieses Wachstum ja serverseitig irgendwie ermittelbar sein und dann auch bei jedem Aufruf der Seite (auch Reload) aktuell übermittelt werden. Es ergibt doch keinen Sinn, das clientseitig von einem festen Wert aus hochzuzählen. Jeder Client hätte dann seinen eigenen Jackpot und wenn er die Seite 3 Tage lang offen lässt, ist das Jahreslimit schon erreicht. Das klingt für mich unseriös. Dass dann beim Reload der "Schwindel" auffliegt, ist nur logisch und lässt sich clientseitig auch nicht verhindern.

Gruß,

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #7 (permalink)  
Alt 31-01-2010, 21:21
pingzaong
 Registrierter Benutzer
Links : Onlinestatus : pingzaong ist offline
Registriert seit: Apr 2005
Ort: Schweiz
Beiträge: 85
pingzaong ist zur Zeit noch ein unbeschriebenes Blatt
pingzaong eine Nachricht über Skype™ schicken
Standard

Ja genau das ist der Punkt! Aber wie krieg ich das hin, dass es mir serverseitig immer den aktuellen Betrag anzeigt? Man sollte ja serverseitig den Mindest- und Maximumjackpot eingeben können, dann gibt es keinen "Schwindel", da der Jackpot ja vorher berechnet wurde.
__________________
Hochachtungsvoll
pingzaong
Mit Zitat antworten
  #8 (permalink)  
Alt 31-01-2010, 22:19
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Welche Logik steckt denn hinter diesem ominösen Wort "Jahresendpot"?
Das oben gezeigte Javascript zählt ja nur von 5000 bis 10000 hoch. Demnach ist der Jahresendpot also 10000 und je weiter wir uns dem Jahresende nähern, desto mehr Kohle ist schon im Pot - bis dann Silvester die ganzen 10000 Ocken drin sind. Ist es das?
Dann brauchst du dafür überhaupt keine DB. Der aktuelle Füllstand des Jackpots ergibt sich aus der 10000 durch Anzahl der Sekunden des Jahres mal Anzahl bereits vergangener Sekunden.
PHP-Code:
$max_amount 10000// soviel soll am Ende drin sein
$now time();
$day_per_year 365 date('L'$now);
$seconds_passed $now mktime(00011);
$curr_amount = ($max_amount / ($days_per_year 24 60 60)) * $seconds_passed
Das war jetzt ohne Berücksichtigung von Schaltsekunden oder Zeitzonen.

Das Ergebnis dieser Berechnung ist allerdings schon nicht mehr wahr, wenn es beim Client ankommt. Denn bis dahin sind schon wieder Sekunden verstrichen. Wenn du es ganz exakt anzeigen willst, übergibst du dem Javascript nur den Wert 10000 und führst die ganze Berechnung clientseitig aus.
Mit Zitat antworten
  #9 (permalink)  
Alt 31-01-2010, 22:53
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Ist es so, wie onemorenerd vorschlägt? Ist der Jackpot eine Funktion der Zeit? Oder wächst er durch konkrete Einzahlungen/Gebote/Bankgewinne mit einer geschätzten oder aus Erfahrungen der Vergangenheit ermittelten Rate? Wann wird der Wert in der DB jeweils aktualisiert, wenn überhaupt? Wie hast du diese 404ms bis zur nächsten Erhöhung ermittelt? Wenn man das damit durchrechnet, haut das ja auch nicht hin. Irgendwie ist hier noch Klärungsbedarf.

Da du von einem "aktuellen Jahresendpot" sprachst, dachte ich, dass sich das bis dahin auch noch ändern kann und das würde auch das Abrufen aus der DB erklären. Solange dieser Wert sich in der DB aber nicht ändert, wirst du mit JS immer wieder dort anfangen müssen, oder deine Besucher bekommen total unsinnige und falsche Werte (z. B. über Cookies).

Um aber auf deine Frage zurückzukommen:

Bei jedem Reload der Seite startet ein JavaScript-Programm wieder von vorn. Wenn du Daten speichern willst, kannst du Cookies benutzen. Du kannst sie aber auch gleich topaktuell durch den Server ausliefern. Da sich die DB offenbar nicht so schnell ändert, geht letzteres offenbar schon nicht. Cookies scheiden aber auch aus, weil deine Berechnung nur funktioniert, wenn du schon beim Laden der Seite weißt, wie lange der Besucher sie betrachten wird, bevor er sie wechselt oder neu lädt.

Kurz: es gibt (auf Basis der vorliegenden Informationen) keine Möglichkeit, dein Vorhaben halbwegs sinnvoll oder halbwegs zuverlässig umzusetzen.

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #10 (permalink)  
Alt 31-01-2010, 23:01
pingzaong
 Registrierter Benutzer
Links : Onlinestatus : pingzaong ist offline
Registriert seit: Apr 2005
Ort: Schweiz
Beiträge: 85
pingzaong ist zur Zeit noch ein unbeschriebenes Blatt
pingzaong eine Nachricht über Skype™ schicken
Standard

Es geht mir im Prinzip gar nicht um die Höhe des Jackpots oder wieviel da drin ist. Im Vordergrund steht lediglich die Zahl, die bei einem Reload der Seite nicht wieder vom Start beginnt, sondern sich fortsetzt. Das bedingt ja meines Wissens ein ständiges Update des Jackpots serverseitig.
__________________
Hochachtungsvoll
pingzaong
Mit Zitat antworten
  #11 (permalink)  
Alt 31-01-2010, 23:12
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Ok, dann speichere den Wert bei jedem Aufruf von addTime in window.name. Beim Laden der Seite siehst du nach, ob in window.name was drin steht und wenn ja, nimmst du das als Startwert.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #12 (permalink)  
Alt 31-01-2010, 23:41
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

@Amica: Das führt zu nichts. Wenn der User den Browser schließt, wieder öffnet und erneut auf die Seite geht, fängt der CountUp wieder bei 5000 an.

@pingzaong: Das ständige serverseitige Update habe ich dir mit dem Schnipsel PHP vorhin schon geliefert. Wenn man das noch etwas verfeinert zu
PHP-Code:
$max_amount 10000// soviel soll am Ende drin sein
$now time();
$day_per_year 365 date('L'$now);
$seconds_passed $now mktime(00011);
$inc_per_second $max_amount / ($days_per_year 24 60 60);
$curr_amount $inc_per_second $seconds_passed
musst du nur noch $inc_per_second und $curr_amount ins Javascript ausgeben und deine addTime-Funktion ein wenig anpassen.

Um den oben angesprochenen Delay zwischen serverseitiger Berechnung von $curr_amount und dem Laden der Seite im Client zu eliminieren, kannst du $curr_amount clientseitig berechnen.
Mit Zitat antworten
  #13 (permalink)  
Alt 01-02-2010, 00:27
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

@onemorenerd
Code:
$day_per_year = 365 + date('L', $now);
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
countup


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
bei betrag nur die letzten zwei kommastellen anzeigen, 2 stelle runden hdmnf PHP Developer Forum 5 21-02-2007 20:13
Countup Walhalla PHP Developer Forum 2 07-06-2006 17:03
aktuellen eBay Verkäuferstatus auf webseite anzeigen tschekowski HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 1 13-12-2005 00:14
Betrag |x| MaxP0W3R PHP Developer Forum 7 12-07-2004 14:35
Ab aktuellen Datum anzeigen webINspirit SQL / Datenbanken 2 03-08-2003 23:39

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:56 Uhr.