0

1時間からゼロまでカウントダウンするタイマーがあります。ゼロに達すると、jQueryはイベントを発生させます(以下のコード)。

データベーステーブルを現在の-1に更新する必要があります。(たとえば、テーブルの数値が20に設定されている場合、カウントダウンがゼロに達した後、19になります)。

私の質問は、jQuery関数に基づいてこの方法でMySQLデータベースを更新するにはどうすればよいですか?PHPを使用してみましたが、カウントダウンがゼロになったときではなく、テーブルが即座に更新されます。(私はこれを後で検索しようとしましたが、PHPがサーバー側であり、jQueryがクライアント側であることに気付きましたが、このようなものを機能させる方法はまだわかりません)。

助けてくれてありがとう!

  <script type="text/javascript">



var year=2012;        //Set initial values for timer
var month=06;          
var day=16;           
var hour=17;          
var minute=10;        
var tz=+12;            


var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");

function countdown(yr,m,d,hr,min){
    theyear=yr;themonth=m;theday=d;thehour=hr;theminute=min;
    var today=new Date();
    var todayy=today.getYear();
    if (todayy < 1000) {
    todayy+=1900; }
    var todaym=today.getMonth();
    var todayd=today.getDate();
    var todayh=today.getHours();
    var todaymin=today.getMinutes();
    var todaysec=today.getSeconds();
    var todaystring1=montharray[todaym]+" "+todayd+", "+todayy+" "+todayh+":"+todaymin+":"+todaysec;
    var todaystring=Date.parse(todaystring1)+(tz*1000*60*60);
    var futurestring1=(montharray[m-1]+" "+d+", "+yr+" "+hr+":"+min);
    var futurestring=Date.parse(futurestring1)-(today.getTimezoneOffset()*(1000*60));
    var dd=futurestring-todaystring;
  //  var dday=Math.floor(dd/(60*60*1000*24)*1);
    var dhour=Math.floor((dd%(60*60*1000*24))/(60*60*1000)*1);
    var dmin=Math.floor(((dd%(60*60*1000*24))%(60*60*1000))/(60*1000)*1);
    var dsec=Math.floor((((dd%(60*60*1000*24))%(60*60*1000))%(60*1000))/1000*1);
    if(dhour<=0&&dmin<=0&&dsec<=0){

      //--TIMER REACHES ZERO HERE. Code needed to update MySQL would go here?

    }
    else {
        document.getElementById('count2').style.display="none";
      // document.getElementById('dday').innerHTML=dday;
        document.getElementById('dhour').innerHTML=dhour;
        document.getElementById('dmin').innerHTML=dmin;
        document.getElementById('dsec').innerHTML=dsec;
        setTimeout("countdown(theyear,themonth,theday,thehour,theminute)",1000);
    }
}
</script>

PS。これは、データベーステーブルを更新するために使用しようとしたPHPコードです。

<?php
        include("db.php");
        mysql_select_db("myData") or die(mysql_error());
        mysql_query("UPDATE cards SET buy=0.01 WHERE id='67'") or die(mysql_error());
        ?>
4

1 に答える 1

0
You have to use $.ajax ([http://api.jquery.com/jQuery.ajax/][1]) to do it because jQuery alone do not have access to the database on the server.
In your javascript code inside the if :     

if(dhour<=0&&dmin<=0&&dsec<=0){

      //--TIMER REACHES ZERO HERE. Code needed to update MySQL would go here?

      $.ajax({ 
          url: "pathToYourPHPUpdateScript.php",
          type: "POST",
          success: function(){
            alert("MYSQL UPDATED!");
          }
      });

    }
于 2012-06-16T08:19:57.483 に答える