Dirk: Daten aus der DB in Javascript einbringen

Hi indesiem Script unten könnt ihr zwei Timesptams sehen.
Der eine ist von einer Seite vorher der in einer DB gespeichert wurde und der zweite ist der Aktuelle. Jetzt will ich die beiden in den Code mit einbringen und dann soll gezählt werden wie lange es noch braucht z.b. bis 5 stunden vorbei sind.
Nach den 5 Stunden soll ein Button erscheinen.
Ich habe bis jetzt elider nur den unteren Teil geschaft, und es wird auch nur in der Satusleiste angeziegt, aber es soll auf den Bildschirm gezeigt werden.
Könnt ihr mir helfen weiß nicht mehr weiter wie ich das machen soll?

  
  
<?php  
  
      $ak_datum = time();  
  
  
      $dbName = "ghostsoldier";  
      $dbHost = "localhost";  
      $dbUser = "root";  
      $dbPW = "";  
  
      if (!(($dblink = mysql_connect($dbHost,$dbUser,$dbPW)) && (mysql_select_db($dbName,$dblink)))) die(mysql_error());  
  
  
      if ($query = mysql_query("SELECT * FROM bauen")) {  
         while ($jetzt = mysql_fetch_array($query)) {  
            $erstezeit = $jetzt["datum"];  
            $zweitezeit = $jetzt["ak_datum"];  
  
         }  
      } else die(mysql_error());  

  
<html>  
<head>  
  
</head>  
<body>  

  
<script language="Javascript">  
<!--  
var countdown = "10";  
  
function doCount()  
{  
if (countdown > 0){  
    countdown--  
}  
else{  
  
<form method="post" action="test3.php">  
<input type="submit" value="weiter" name="los">  
</form>  
}  
  
var s = countdown;  
var h = Math.floor(s/3600);  
var m = Math.floor((s - (h * 3600))/60);  
s = (s-(h*3600))%60  
  
window.status=h+":"+m+":"+s+ " bis zur nächsten Seite"  
  
window.setTimeout('doCount()',1000)  
}  
  
doCount();  
//-->  
</script>
  
</body>  
</html>
  1. Hi there,

    Ich habe bis jetzt elider nur den unteren Teil geschaft, und es wird auch nur in der Satusleiste angeziegt, aber es soll auf den Bildschirm gezeigt werden.

    Also mit dem bekommst Du am Bildschirm höchstens eine Fehlermeldung; klassischer Fall von "falsch verwechselt":

    Ohne mir jetzt Dein PHP script im Detail betrachtet zu haben fällt sofort auf, daß Du im Javascriptteil einen groben Fehler hast:

    if (countdown > 0){
        countdown--
    }
    else{

    <form method="post" action="test3.php">
    <input type="submit" value="weiter" name="los">
    </form>
    }

    Die Anweisungen nach dem else-Branch sind keine Javascriptbefehle sondern html-Tags. Die kannst Du, wenn überhaupt, nur mit dem javascriptBefehl document.write("<html-Tag">) umsetzen; in diesem Falle aber wesentlich besser, Du realisierst das, in dem Du Dein Formular mit Button in die Seite setzt, aber unsichtbar; zB:

    <div style="visibility:hidden" id="FORMULAR">
    <form method="post" action="test3.php">
    <input type="submit" value="weiter" name="los">
    </form>
    </div>

    dann kannst Du im else Teil mit der Javascript-Anweisung:

    document.getElementById("FORMULAR").style.visibility="visible";

    dein Formular wieder sichtbar machen...

    1. Hi,
      also ich habe das jetzt alles ein gebrahct un es klappt.
      Jetzt nur noch zwei Sachen,
      ersten ich habe jetzt den Countdown gesetzt, indem ich den alten TImestamp mit dem neuen vergleich und so zu einem Countdown komme. Ich möchte aber das er z.B. nur zwei Stunden läuft.
      Jetzt berechne ich aber wie lange das her ist der erste Tiemstamp und der zweite.
      Aber der countdown soll nur 2 stunden laufen, und die tiemsatmps sollen nur schauen wie lange das noch dauert.
      aber wie kann ich das realisieren?

      Das folgende Script gibt mir nur die zeit zwischen den Time stamps an, ich will aber einen Countdown haben, der vom ersten tiemstamp 2 stunden rechnet und dann soll der Button erscheinen.

        
      <?php  
        
        $ak_datum = time();  
        
        
        $dbName = "ghostsoldier";  
        $dbHost = "localhost";  
        $dbUser = "root";  
        $dbPW = "";  
        
        if (!(($dblink = mysql_connect($dbHost,$dbUser,$dbPW)) && (mysql_select_db($dbName,$dblink)))) die(mysql_error());  
        
        
        if ($query = mysql_query("SELECT * FROM bauen")) {  
         while ($jetzt = mysql_fetch_array($query)) {  
          $erstezeit = $jetzt["datum"];  
         }  
        } else die(mysql_error());  
        
        $dauer = $ak_datum - $erstezeit  
        ?> 
      
        
      <html>  
      <head>  
        
      </head>  
      <body>  
      
      
        
      <script language="Javascript">  
      <!--  
      var countdown = <?=$dauer?>;  
        
      function doCount()  
      {  
      if (countdown > 0){  
          countdown--  
      }  
      else{  
      document.getElementById("FORMULAR").style.visibility="visible";  
      }  
        
      var s = countdown;  
      var h = Math.floor(s/3600);  
      var m = Math.floor((s - (h * 3600))/60);  
      s = (s-(h*3600))%60  
        
      window.status=h+":"+m+":"+s+ " bis zur nächsten Seite"  
        
      window.setTimeout('doCount()',1000)  
      }  
        
      doCount();  
      //-->  
      </script>  
      
      
        
      <div style="visibility:hidden" id="FORMULAR">  
      <form method="post" action="test3.php">  
      <input type="submit" value="weiter" name="los">  
      </form>  
      </div>  
      </body>  
      </html> 
      
      1. Hi there,

        Das folgende Script gibt mir nur die zeit zwischen den Time stamps an, ich will aber einen Countdown haben, der vom ersten tiemstamp 2 stunden rechnet und dann soll der Button erscheinen.

        Das müsste das script eigentlich machen, ich verstehe nicht ganz, worauf Du hinauswillst...

        1. Er rechnet, vom ersten Time Stamp bis zum jetztigen Time Stamp die zeit aus. Aber ich will nur vom ersten Time Stamp zwei Stunden rechnen.
          Das heißt ich habe den ersten Time STamp um 15:00 gesetzt.
          Der Countdown soll aber ist 17:00 laufen.

          Wenn der user zsich z.B. jetzt wieder ausloggt, dund wiede rienloggt solld er Contdown nicht vom Anfang anfangen, sondern vom ersten Tiem Stamp und das macht er.

          Aber wie kann ich das mit dne 2 Stunden machen, das ist was ich mit dem Script erreichen will.

          1. Hi there,

            Wenn der user zsich z.B. jetzt wieder ausloggt, dund wiede rienloggt solld er Contdown nicht vom Anfang anfangen, sondern vom ersten Tiem Stamp und das macht er.

            Das kannst Du vergessen, ausser du setzt ein Cookie oder du speicherst die user-ID in einer Datenbank

            Aber wie kann ich das mit dne 2 Stunden machen, das ist was ich mit dem Script erreichen will.

            Indem Du timestamp2 einfach als timestamp1 + 7200 definierst...

            1. Hi,

              also das mit der Zeit hat alles geklappt, nur wie kann ich die Zeit jetzt in einer Tabelle auf dem Bildschirm z.B. anzeigen lassen und nicht mehr in der Stautusbar?

              Danke aber trotzdem schonmal...

  2. Tag Malte.

    [...]

    Auch ein anderer Nick ändert nichts daran: bleibe bitte in deinen Threads: https://forum.selfhtml.org/?t=106303&m=658359, https://forum.selfhtml.org/?t=106304&m=658361 und https://forum.selfhtml.org/?t=106287&m=658178.

    Siechfred

    --
    «Ich liebe euch doch alle!»
  3. Ok das mit der Zeit klappt doch nicht so recht, hier ist nich mal das Script

      
    <?php  
      
    //Jetzt wird die neue Zeit gesetzt wenn der User auf diese Seite geht.  
      
     $ak_datum = time();  
      
      
       $dbName = "ghostsoldier";  
          $dbHost = "localhost";  
          $dbUser = "root";  
          $dbPW = "";  
      
          if (!(($dblink = mysql_connect($dbHost,$dbUser,$dbPW)) && (mysql_select_db($dbName,$dblink)))) die(mysql_error());  
      
       //echo $datum." as ".strlen($datum);  
    $sql ="UPDATE bauen                      SET  
                                  ak_datum = '".$ak_datum."'";  
      
           $result = mysql_query($sql) or die(mysql_error().'<br />Query: '.$sql);  
      
      $dbName = "ghostsoldier";  
      $dbHost = "localhost";  
      $dbUser = "root";  
      $dbPW = "";  
      
      if (!(($dblink = mysql_connect($dbHost,$dbUser,$dbPW)) && (mysql_select_db($dbName,$dblink)))) die(mysql_error());  
      
    //jetzt werden die Daten in einem array gespeichert  
    //um dann die daten auszuwerten für den countdown  
      
      if ($query = mysql_query("SELECT * FROM bauen")) {  
       while ($jetzt = mysql_fetch_array($query)) {  
        $erstezeit = $jetzt["datum"];  
        $zweitezeit = $jetzt["ak_datum"];  
       }  
      } else die(mysql_error());  
      
    //Hier sollen eigentlich der Countdown so gestellt werden, das der  
    //countdown nur 2 stunden läuft, das klappt aber nicht  
      
      $zweitezeit_6 = $zweitezeit - 1;  
      $erstezeit_6 = $erstezeit + 999999999;  
      
    //die variable $dauer ist später für den Countdown , die zeit die  
    //die abgelaufen werden soll  
    //aber es klappt nicht könnt ihr mir mal helfen  
      
      $dauer =  $zweitezeit_6 - $erstezeit_6 ;  
      ?>  
    
    
    1. Hallo Dirk/Malte/Svenja,

      Ok das mit der Zeit klappt doch nicht so recht, hier ist nich mal das Script

      unter wie vielen namen willst du hier jetzt noch auftreten?
      denkst du wirklich, damit steigerst du die bereitschaft, dir weiterzuhelfen?

      ich würde sagen, es nervt eher.

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }