Hallo erstmal
Ich habe ein Problem mit ein JS für einen countdown. Er soll bei jeder ID den countdown anzeigen was über eine php Abfrage mit MySQL angezeigt wird und dann in ein template angezeigt wird.
Das Script funktioniert tadellos bei nur eine ID, aber bei mehrere ID's funktioniert es nur bei eine ID, die andere bleiben stumm .
Ach so alles andere was aufgelistet werden soll wie zb ID,bild usw.. funktioniert bei mehrere ID's
Hier der code
<!-- IF challenges.TDABEI == 1 -->
Java:
<script type="text/javascript">var finalEventDt =newDate("{challenges.TSTATUS}").getTime();var x =setInterval(function(){var now =newDate().getTime();var delay_total = finalEventDt - now;var days =Math.floor(delay_total /(1000*60*60*24));var hours =Math.floor((delay_total %(1000*60*60*24))/(1000*60*60));var minutes =Math.floor((delay_total %(1000*60*60))/(1000*60));var seconds =Math.floor((delay_total %(1000*60))/1000);
document.getElementById("example").innerHTML = days +" Tage "+ hours +" Stunden "+ minutes +" minuten "+ seconds +" sekunden ";if(delay_total <0){clearInterval(x);
document.getElementById("example").innerHTML ="Spielzeit abgelaufen";}},1000);</script>
Erst einmal sind Java und JavaScript zwei unterschiedliche Dinge. Daher bitte Fragen zu JavaScript im entsprechenden Unterforum stellen (Beitrag wird von Moderatoren bestimmt in Kürze verschoben).
Dann wäre die Frage, was Du genau versucht hast. Du hast dieses Script mehrfach auf Deiner Seite? Wie sehen die genau aus? Mir fehlen gerade die Details. Denn 1:1 wirst Du das Script ja nicht verwendet haben, oder? In dem Script greifst Du auf das Element "example" zu - das ist ja das mindeste, was Du anpassen müsstest, oder?
Oder hast Du eine Webseite, bei der Du dynamisch mehrere Einträge erstellt hast und bei jedem Eintrag hast Du dann ein Element mit id="example"?
Hallo
Sorry bin ziemlich neu in solche sachen.
Ich habe in eine php mit eine MySQL abfrage die Resultate aufgelistet.
Dann genau dieses Script in ein template eingebaut wie oben gepostet.
Die Auflistung bei mehrere ID'S funktioniert ja bei die andere Sachen wie zb Bild spielname usw..
Nur das Script wird nur der countdown wird nur einmal angezeigt, siehe screen
Dann zeige doch bitte die ganze php Seite mit Code Tags, also mit dem Knopf </> links oberhalb des Eingabebereiches. Dann haben wir ein genaues Bild, was du genau machst.
neben deiner urspünglichen Frage, sehe ich hier noch andere Probeleme:
PHP:
if($action=='challenges'){
Sieht aus, als wäre Register Globals an. Das ist eine große Sicherheitslücke, wenn dem so ist. Jeder, der da in der URL z.b. ?action=XXX schreibt, kann diese Variable überschreiben.
Oder andere kritischere Variablen überschreiben.
Ich könnte vermutlich ?sql=Update users set ... machen, dann würde er die $sql entsprechend ändern und ausführen.
Du verwensdest auch keine prepered Statements. Das könnte eine weitere erhebliche Sicherheitslücke sein.
PHP:
$sql="SELECT * FROM phpbb_1challenges WHERE `beendet` = 0 GROUP BY `id` ORDER BY `id` DESC";
Group by ID macht ja keinen Sinn, da ID immer eindeutig ist.
PHP:
$sql='SELECT * FROM phpbb_1ra_games WHERE `game_id` = '.(int)$rowid['gameid'].' ';
Hier verwendest du $rowid (assoziatives Array) aber weiter oben ist der Wert in $tgameid schon enthalten.
Ich sehe in deinem PHP Code darüber hinaus keine Referanz auf das o.g. Java Script.
Weiter ist das so, dass das Java Script immer das Element:
Javascript:
document.getElementById("example").innerHTML =
referenziert.
Wenn du nun mehere Spiele hast, wird das element öfter vorhanden sein.
Selbst wenn (was ich hier nicht sehe) du das Java Script mehrfach ausführst, würden alle Timer immer das eine Element ändern.
Du musst dem Element mit dem Namen "example" eine eindeutige ID geben. Den Timer pro ID starten.
Hi
Ja ok aber die Anzahl an ID's sind ja immer unterschiedlich, wie will ich das anstellen?
Sorry bin Anfänger
Es ist ja eine row Tabelle wie will ich da für jeder ID das Script einfügen ?
Thank you very much for your response, i have removed all unnecessary forms and included a unique ID on my p element, Now i am atlease getting count down on my rows but SAME COUNT DOWN on all the rows and When i view page source it shows each javascript with different times to expire and...
www.sitepoint.com
Prinzipiell gehest du vor wie folgt:
Jede TR (oder schon die Passende TD) in deiner Tabelle bekommt eine ID (e.g. id="timer_element_XXXXX). Wobei XXXXX aus der Datenbank kommt und hier an der stelle entsprechend die ID aus der DB anzeigt.
Hier muss dann pro Zeile auch ein JS Funktion aufgerufen werden: Z.B. On document ready -> createTimer("timer_element_XXXXXX", "Zieldatum");
Dann benötigst du eine Funktion, in JS, die disjunkte TimerTasks startet.
~~~~~
Allgemein. Ich finde es sehr gut, dass du dich an sowas rantraust. Es ist aber nicht unbedingt ein Anfängerthema. Du hast ein Konzept PHP und ganz spezielle Konzepte in JS. Diese muss man seperat verstanden haben und dann anwenden können.
Also musst du hier extra Gedult mitbringen und eine steile Lernkurve antizipieren.