Ergebnis 1 bis 2 von 2
  1. #1
    Fire-Head ist offline Grünschnabel
    registriert
    02-06-2006
    Beiträge
    1

    [PHP/JS]Timer auf mausklick starten - Klappt nicht so wie ich das möchte!!!

    Hi comunitiy,

    Ich bin dabei ein Kleines Browsergame zu schreiben, was mir bis jetzt auch keine Probs gemacht hat!

    Nun bin ich dabei das ich einen Countdown bei einem Click ereigniss mittels Llink oder Button starten möchte.
    Mein Problem dabei ist, das sobald ich die Seite aufgerufen habe er sofort anfängt zu Zählen was er aber nicht soll, sondern erst anfangen wenn der User auf den Link oder Button geklickt hat.

    Meine Entwickler umgebung ist Xampp mit php4 und sql 2.7 alles Lokal auf einem Win2kPro rechner.

    der Code ist Folgender:

    PHP-Code:

    <?php
    include("../res.php");  <!-- FÜR DIESES SCRIPT IRRELEVANT!-->

    $db=mysql_connect($database_server,$database_user,$database_passwort);
    mysql_select_db("sf");
    ?>

    <!--ZEITAUSLESEN AUS DATENBANK-->
    <?
         $kon2 
    1;
         
    $sql2="SELECT `basiszeit` FROM `konstruktion` WHERE id = 1";
         
    $sql2=mysql_query($sql2);
         
    $sql2=mysql_fetch_object($sql2);
         
    $mathd $sql2->basiszeit;
         
    $mathh $sql2->basiszeit;
         
    $mathm $sql2->basiszeit;
         
    $maths $sql2->basiszeit;
         
         
         for (
    $i=0;$i<$kon2;$i++)
          {
           
    $mathd $mathd 2;
           
    $mathh $mathh 2;
           
    $mathm $mathm 2;
           
    $maths $maths 2;
           
          };
                  
    $d = ($mathd 86400) % 1;
                
    $d floor($d);
                  
    $h = ($mathh 3600) % 24;
                
    $h floor($h);
                
    $m = ($mathm 60) % 60;
                
    $m floor($m);
                
    $s $maths 60;
                
    $s floor($s);
    ?>
    <!--ZEITAUSLESEN ENDE-->

    <html>
    <head>
    <link rel="stylesheet" type="text/css" href="../../css/style_plan.css">

    <!-- JS CODE FÜR TIMER -->
    <script>
    var TimeStart   = new Date();
    function vxSetCounter(s) {
    var p       =   document.getElementById("counter");
    var TimeNow =   new Date();
    var TimeLeft=   ((s*1000) - (TimeNow.getTime()-TimeStart.getTime()))/1000;
    if (TimeLeft>0)
    {
    var Tage    =   parseInt(TimeLeft / (60*60*24));
    TimeLeft    =   TimeLeft-(Tage*(60*60*24));
    var Stunden =   parseInt(TimeLeft / (60*60));
    TimeLeft    =   TimeLeft-(Stunden*(60*60));
    var Minuten =   parseInt(TimeLeft / (60));
    TimeLeft    =   TimeLeft-(Minuten*(60));
    var Sekunden=   parseInt(TimeLeft);
    Stunden     =   Stunden + (Tage*24);
    if (Stunden<10) Stunden="0"+Stunden;
    if (Minuten<10) Minuten="0"+Minuten;
    if (Sekunden<10)Sekunden="0"+Sekunden;
    var TimeStr =   Stunden+":"+Minuten+":"+Sekunden;
    <!-- COUNTER AKTIV -->
    p.innerHTML =   TimeStr+' - <a href="overview.php">[CANCEL]</a>';
    window.setTimeout("vxSetCounter("+s+")",1000);
    }
    else
    {
    <!-- LINK ZUM COUNTERAUFRUF-->
    p.innerHTML =   '<a href="#" onclick="vxSetCounter(<?echo $mathd;?>)">[bauen]</a>';
    }
    }
    </script>
    <!-- JS CODE TIMER ENDE-->

    </head>
    <body style="margin-top: 8px;" background="../img/bg.jpg">
    <center>
    <br><br><br><br>
    <table cellpadding="0" cellspacing="0" width="600">
     <tr height="20">
      <td colspan="3" class="tdark" align="center">
       &nbsp;>>Konstruktionsmenue<<
      </td>
     </tr>

     <tr><td colspan="3" class="tdss">&nbsp;</td></tr>
    <!--Iridiummiene START-->

     <tr height="18">
      <td  class="tdark" colspan="1">
       &nbsp;
       <font class="folight">
        Iridiummiene&nbsp;
        (

    <!-- STUFE AUSLESEN -->
        <?
         $sql
    ="SELECT `kon_01` FROM `user_".$_SESSION['name']."`";
         
    $sql=mysql_query($sql);
         
    $sql=mysql_fetch_object($sql);
         
    $kon1 $sql->kon_01;
         echo 
    $kon1;
         if (
    mysql_errno()) die ("MySQL-Error: " mysql_error());
        
    ?>
    <!-- STUFE ENDE -->
        )
       </font>
      </td>
      <td class="tdark" title="Stufe abreissen" align="right">&nbsp;</td>
      <td rowspan="2" class="out" align="center" valign="middle" width="100">
       <img src="../img/101.jpg" >
      </td>
     </tr>
     <tr valign="top">
      <td>
      Diese Miene produziert "Iridium" welches zum Bauen und Forschen gebraucht wird.<br>
      <br>
      KOSTEN:&nbsp;
      <font class="folight">
      <b>
    <!-- KOSTEN ANZEIGE FÜR IRI -->
      <?
         $sql2
    ="SELECT `iri` FROM `konstruktion` WHERE id = 1";
         
    $sql2=mysql_query($sql2);
         
    $sql2=mysql_fetch_object($sql2);
         
    $math $sql2->iri;
         
         for (
    $i=0;$i<$kon;$i++)
          {
           
    $math $math 1.5;
          };
         echo 
    floor($math);
         if (
    mysql_errno()) die ("MySQL-Error: " mysql_error());
      
    ?>
    <!-- KOSTENANZEIGE ENDE -->
      </b>
      </font> 
      Iridium, 
      <font class="folight">
      <b>
    <!-- KOSTEN ANZEIGE FÜR SIL -->
      <?
         $sql2
    ="SELECT `sil` FROM `konstruktion` WHERE id = 1";
         
    $sql2=mysql_query($sql2);
         
    $sql2=mysql_fetch_object($sql2);
         
    $math $sql2->sil;
         
         for (
    $i=0;$i<$kon;$i++)
          {
           
    $math $math 1.5;
          };
         echo 
    floor($math);
         if (
    mysql_errno()) die ("MySQL-Error: " mysql_error());
      
    ?>
    <!-- KOSTENANZEIGE ENDE -->
      </b>
      </font> 
      Silizium<br>
      Bauzeit:&nbsp;&nbsp;

    <!-- ZEITANZEIGE VON GANZ OBEN -->
      <?  
         
    echo "Tage:";
         echo 
    $d;
         echo 
    "<br>";      
         echo 
    $h;
         echo 
    ":";
         echo 
    $m;
         echo 
    ":";
         echo 
    $s;
         if (
    mysql_errno()) die ("MySQL-Error: " mysql_error());
      
    ?>
    <!-- ZEITANZEIGE ENDE-->

      </td>
      <td  align="center" valign="middle" width="150px">
        <center><br>
       <font class="folight">
    <!-- ANZEIGE DES COUNTERS -->
        <div id="counter"></div>
        
        <script>vxSetCounter();</script>
    <!-- ANZEIGE ENDE -->
       </font>
       <!--Iridiummiene ENDE-->
      </td>
     </tr>
    Ausserdem startet der Counter wenn ich die seite neulade auch neu! DAs soll er abrer nicht und nach beenden des Counters soll eine function.php ausgeführt werden um die Datenbank zu aktualisieren.

    Ich hoffe mir kann jemand weiterhelfen.

    Danke im Vorraus für jede nützliche Antwort.

    Fire-Head

  2. #2
    Avatar von ZeitGeist
    ZeitGeist ist offline Lounge-Member
    registriert
    26-04-2003
    Ort
    Outa Space
    Beiträge
    4.125

    AW: [PHP/JS]Timer auf mausklick starten - Klappt nicht so wie ich das möchte!!!

    nach beenden des Counters soll eine function.php ausgeführt
    hab mir den code nicht näher angeguckt, aber so kann ich auch die function.php aufrufen ohne das der countdown abgelaufen ist.
    Beim Click auf den Button sollte das JS-Script nicht direkt gestartet werden, sondern erst der Server etwas in die DB eintragen und die neu geladene Seite dann den Countdown starten, so kannst du auch verhindern das der Countdown von vorne losgeht wenn die Seite neu geladen wird.

Ähnliche Themen

  1. Antworten: 7
    Letzter Beitrag: 20-12-2005, 12:05
  2. Ein Tag im Freibad
    Von reiflo im Forum Fun
    Antworten: 1
    Letzter Beitrag: 28-06-2005, 09:38
  3. IE kein Zugriff auf Apache
    Von Patient im Forum Linux und Co
    Antworten: 4
    Letzter Beitrag: 31-03-2002, 04:42
  4. Focus auf Shockwave-Film
    Von Aichbus im Forum JavaScript
    Antworten: 0
    Letzter Beitrag: 15-03-2002, 12:01
  5. Realcount script immer auf 1
    Von kakalake im Forum Serverseitige Programmierung
    Antworten: 1
    Letzter Beitrag: 01-09-2000, 15:57

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •