Avatar billede xsix Nybegynder
27. september 2007 - 16:00 Der er 10 kommentarer og
1 løsning

Tæller fra 0 og ned (-1, -2, -3 osv)

Hej Eksperter.
Jeg ved desværre ikke noget om JavaScript, men bruger det her nedtællings et i min PHP kode, jeg har så det problem at til at starte med tæller den ned fra 0, dvs -1, -2, -3 osv. Indtil man trykker opdater eller går ind på siden igen på en anden måde, så tæller den ned fra normalt fra det antal minutter man så har bedt den om. Er der nogen der ved hvordan man kan rette det?

$wait_time = $sleep_time - ($time_now - $user_data[workingtime]); // result i sek
?>
        <SCRIPT language="Javascript1.2">
        var timedelay=1000;
        var timeleft=<?php echo "" + $wait_time; ?>;

        function calctext() {
          if (timeleft>60) {
            var minutesleft = Math.floor(timeleft/60)%60;
            var secondsleft = (timeleft%60);

            if (minutesleft==1) minutesandseconds = minutesleft+' minute and ';
            else minutesandseconds = minutesleft+' minutes and ';

            if (secondsleft==1) minutesandseconds = minutesandseconds+secondsleft+' second';
            else minutesandseconds = minutesandseconds+secondsleft+' seconds';
          }
          else {
            if (timeleft==1) minutesandseconds = timeleft+' second';
            else minutesandseconds = timeleft+' seconds';
          }
          return minutesandseconds
        }

        function changecontent() {
          timeleft--;
          document.getElementById('placeithere').innerHTML=calctext()+' until you can work again<br><a href="play.php">Return</a>';

          if (timeleft==0) document.getElementById('placeithere').innerHTML='<a href="work2.php">Refresh</a>';
          else setTimeout("changecontent()",timedelay)
        }

        function startscript() {
          changevalues();
          changecontent();
          l2();
        }
        // -->
        </SCRIPT>

<table width=715 align=center class=borderme cellpadding=0 cellspacing=0>
<SPAN id="placeithere" class=time>Loading Game</SPAN>
</table>

<SCRIPT language='Javascript'>
    <!--
    function changevalues() {
      //none
    }
    window.onload=startscript;
    // -->
    </SCRIPT>
Avatar billede w13 Novice
27. september 2007 - 17:29 #1
Skal det stadig være i minutter og sekunder eller bare 0, -1, -2, -3 ?
Avatar billede lolman Nybegynder
27. september 2007 - 17:41 #2
<script type="text/javascript">

onload=function(){
var loekke = "";
var antal = -10;
for (var i=0;i>=antal;i--) {
  var loekke = loekke+i+",";
}
alert(loekke);
}
</script>
Avatar billede xsix Nybegynder
27. september 2007 - 17:42 #3
w13: Problemet er at den netop viser -1, -2, -3 osv, det vil jeg gerne have den ikke skal gøre.
Avatar billede xsix Nybegynder
27. september 2007 - 17:44 #4
lolman: Hvor skal det sættes ind henne?
Jeg satte det lige før det her:, og det virkede ikke.

<SCRIPT language='Javascript'>
    <!--
    function changevalues() {
      //none
    }
    window.onload=startscript;
    // -->
    </SCRIPT>
Avatar billede w13 Novice
27. september 2007 - 17:58 #5
Nej, lolman misforstod det vist ligesom jeg.

Prøv at tjekke, hvad var der står i koden ved: timeleft=<?php echo "" + $wait_time; ?>;
når den skriver minustal.
Avatar billede w13 Novice
27. september 2007 - 18:42 #6
I øvrigt bør SCRIPT-tag'et have en TYPE-attribut i stedet for en LANGUAGE.

Dvs.:

<script type="text/javascript">

Det er langt mere gyldigt. =)
Avatar billede xsix Nybegynder
27. september 2007 - 18:53 #7
w13: Forstår ikke helt hvad du mener med hvad der står i koden?
Men det virkede fint før da jeg havde et link til at sætte den igang, nu her bruger jeg en dropdown menu, så man selv kan vælge hvor lang tid man vil sætte den til.
Uden at vide noget som helst om JavaScript, har jeg en teori om at det er fordi jeg henter er begyndt at hente tiden via $_POST i stedet for at den stod der med det samme som før, så nu når den at gå igang før tiden helt er der, og så tæller den bare ned fra 0 til -X.
Lyder det sandsynligt, og kan man gøre noget ved det? :)
Avatar billede w13 Novice
27. september 2007 - 19:00 #8
Hvis du åbner siden - og den tæller forkert ned - så prøv at vælge "Vis kilde" og aflæs hvad der står efter "var timeleft=". Så ser vi, om den er indstillet forkert ved indlæsning.
Avatar billede xsix Nybegynder
27. september 2007 - 19:20 #9
Nå :)
Kildekoden fra når den tæller ned:

<script language="Javascript1.2">
        var timedelay=1000;
        var timeleft=0;

        function calctext() {
          if (timeleft>60) {
            var minutesleft = Math.floor(timeleft/60)%60;
            var secondsleft = (timeleft%60);

            if (minutesleft==1) minutesandseconds = minutesleft+' minute and ';
            else minutesandseconds = minutesleft+' minutes and ';

            if (secondsleft==1) minutesandseconds = minutesandseconds+secondsleft+' second';
            else minutesandseconds = minutesandseconds+secondsleft+' seconds';
          }
          else {
            if (timeleft==1) minutesandseconds = timeleft+' second';
            else minutesandseconds = timeleft+' seconds';
          }
          return minutesandseconds
        }

        function changecontent() {
          timeleft--;
          document.getElementById('placeithere').innerHTML=calctext()+' until you can work again<br><a href="play.php">Return</a>';

          if (timeleft==0) document.getElementById('placeithere').innerHTML='<a href="work2.php">Refresh</a>';
          else setTimeout("changecontent()",timedelay)
        }

        function startscript() {
          changevalues();
          changecontent();
          l2();
        }
        // -->
        </script>

<span id="placeithere" class="time">-19 seconds until you can work again<br><a href="play.php">Return</a></span>
<table class="borderme" align="center" cellpadding="0" cellspacing="0" width="715">
</table>

<script type="text/javascript">

onload=function(){
var loekke = "";
var antal = -10;
for (var i=0;i>=antal;i--) {
  var loekke = loekke+i+",";
}
alert(loekke);
}
</script>

<script language="Javascript">
    <!--
    function changevalues() {
      //none
    }
    window.onload=startscript;
    // -->
    </script>
Avatar billede xsix Nybegynder
27. september 2007 - 19:57 #10
Tror det bliver for avanceret, jeg laver bare hvert enkelt som link og ser om det virker :)
Men ellers mange tak for hjælpen w13 og lolman.
Avatar billede w13 Novice
27. september 2007 - 21:15 #11
Som du kan se, står der i din kode:

        var timeleft=0;

Derfor tæller den ned fra nul...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester