Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [JS] keine Änderung der HTML-Seite (https://www.delphipraxis.net/54987-%5Bjavascript%5D-keine-aenderung-der-html-seite.html)

jamma-markus 14. Okt 2005 14:56


[JS] keine Änderung der HTML-Seite
 
ich habe ein problem mit jeavascript:

Beim folgenden Code wird "$next_building_ready" als php-variable übergeben! Datei: "index.php"
Code:
<html>
  <head>
    <script src="javascript.js" type="text/javascript">
    </script>
  </head>
  <body topmargin="0" leftmargin="0" class="body" onload="beimstart('.$next_building_ready.')">
    <span id="building_ready">1234567890</span>


    <span id="servertime">12:34:56</span>


  </body>
</html>
Die datei "javascript.js" sieht so aus:
Code:
function zeit_aktuell() {
  var Jetzt = new Date();

  var Tag = Jetzt.getDate();
  var Monat = Jetzt.getMonth() + 1;
  var Jahr = Jetzt.getYear();
  var Stunden = Jetzt.getHours();
  var Minuten = Jetzt.getMinutes();
  var Sekunden = Jetzt.getSeconds();

  if (Tag < 10) { Tag = "0" + Tag; }
  if (Monat < 10) { Monat = "0" + Monat; }
  if (Jahr < 2000) { Jahr = Jahr + 1900; }
  if (Stunden < 10) { Stunden = "0" + Stunden; }
  if (Minuten < 10) { Minuten = "0" + Minuten; }
  if (Sekunden < 10) { Sekunden = "0" + Sekunden; }

  var Ausg = Tag + "." + Monat + "." + Jahr + " - " + Stunden + ":" + Minuten + ":" + Sekunden;

  document.getElementById('servertime').innerHTML = Ausg;
  window.setTimeout("zeit_aktuell()", 1000);
}

function building_ready(building_fertig) {
  if (building_fertig > 0) {
    var Stunden = floor(building_fertig / 3600);
    var rest = verbleibend - (Stunden * 3600);
    var Minuten = floor(rest / 60);
    var Sekunden = rest - (Minuten / 60);
    var Ausg = Stunden + ":" + Minuten + ":" + Sekunden;
    document.getElementById('building_ready').innerHTML = Ausg;
    window.setTimeout("building_ready(" + building_fertig - 1 + ")", 1000);
  }
  else {
    location.reload();
  }

}

function beimstart(building_fertig) {
  zeit_aktuell();
  building_ready(building_fertig);
}
doch irgendwie wird beim aufruf der datei "index.php" nichts geändert?!

nun meine frage: was muss ich ändern?

Rastaman 14. Okt 2005 15:09

Re: [JS] keine Änderung der HTML-Seite
 
Müsste das nich so heissen :gruebel:

Index.php

Code:
<html>
  <head>
    <script src="javascript.js" type="text/javascript">
    </script>
  </head>
  <body topmargin="0" leftmargin="0" class="body" onload="beimstart('<? echo $next_building_ready; >?')">
    <span id="building_ready">1234567890</span>


    <span id="servertime">12:34:56</span>


  </body>
</html>

jamma-markus 14. Okt 2005 16:00

Re: [JS] keine Änderung der HTML-Seite
 
ja, stimmt schon.

habe wohl vergesen zu schreiben, dass die index.php komplett mit echo ausgegeben wird.

Code:
<?PHP
echo '<html>
  <head>
    <script src="javascript.js" type="text/javascript">
    </script>
  </head>
  <body topmargin="0" leftmargin="0" class="body" onload="beimstart('.$next_building_ready.')">
    <span id="building_ready">1234567890</span>


    <span id="servertime">12:34:56</span>


  </body>
</html>';
?>

Rastaman 14. Okt 2005 16:03

Re: [JS] keine Änderung der HTML-Seite
 
Muss man Strings nich in '' übergeben?

Code:
<?PHP
echo "<html>
  <head>
    <script src=\"javascript.js\" type=\"text/javascript\">
    </script>
  </head>
  <body topmargin=\"0\" leftmargin=\"0\" class=\"body\" onload=\"beimstart('$next_building_ready')\">
    <span id=\"building_ready\">1234567890</span>


    <span id=\"servertime\">12:34:56</span>


  </body>
</html>";
?>

Airblader 14. Okt 2005 16:06

Re: [JS] keine Änderung der HTML-Seite
 
Nein, muss man nicht.
Bei Quotes werden die Strings einfach nur nicht extra geparst (Variablenersetzung), bei Doublequotes schon ;)

air

ManuMF 14. Okt 2005 16:27

Re: [JS] keine Änderung der HTML-Seite
 
Was genau soll denn der Code machen (Vor allem die 2. Funktion)? :gruebel:

Aus Erfahrung kann ich übrigens sagen, dass Location.Reload nicht immer den gewünschten Effekt erziehlt ;-)

jamma-markus 14. Okt 2005 16:32

Re: [JS] keine Änderung der HTML-Seite
 
die function "building_ready(building_fertig)" soll einen wert "building_fertig" in eine "Stunden:Minuten:Sekunden" angeben und gleichzeitig einen countdown darstellen, sodass nacheinander etwa folgendes erscheind:
"10:10:10"
"10:10:09"
"10:10:08"
"10:10:07"
"10:10:06"
"10:10:05"
"10:10:04"
"10:10:03"
"10:10:02"
"10:10:01"
"10:10:00"
"10:09:59"

idontwantaname 14. Okt 2005 16:33

Re: [JS] keine Änderung der HTML-Seite
 
Deine building_ready Funktion hat da ein paar Fehler, ich hab sie mal ausgebessert ... damit wird es dann auch gehen ;)
Code:
function building_ready(building_fertig) {
  if (building_fertig > 0) {

    var Stunden = Math.floor(building_fertig / 3600);
    var Rest = building_fertig - Stunden * 3600;
    var Minuten = Math.floor(Rest / 60);
    var Sekunden = Rest - Minuten * 60;

    var Ausg = Stunden + ":" + Minuten + ":" + Sekunden;
    document.getElementById('building_ready').innerHTML = Ausg;
    window.setTimeout("building_ready(" + (building_fertig-1) + ")", 1000);
  }
  else {
    location.reload();
  }
}

jamma-markus 14. Okt 2005 17:53

Re: [JS] keine Änderung der HTML-Seite
 
danke

thema kann geschlossen werden - problem behoben!


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz