0

Ajaxによってデータベースからのデータを表示していますが、データベースからの時間でカウントダウンタイマーを追加する必要があります。約24時間苦労しているのでできますか?ここhttp://www.egrupper.plでメインコードを見ることができ、カウントダウンタイマーが機能していないことがわかります。AJAXコード:

function showDeals(sid,limit,cat)
{
sid=typeof sid !== 'undefined' ? a : 1;
limit = typeof limit !== 'undefined' ? limit : 0.7;
if(sid=="" || limit==""){
    document.getElementById("con").innerHTML="";
    return;
}
if(window.XMLHttpRequest){
    xmlhttp=new XMLHttpRequest();
}else{
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
    if(xmlhttp.readyState==4 && xmlhttp.status==200){
        document.getElementById("con").innerHTML=xmlhttp.responseText;
$('#con').masonry({
      itemSelector: '.clsDeal_Blk_Cont'
    });

    }
}
xmlhttp.open("GET","getdeals.php?sid="+sid+"&limit="+limit+"&cat="+cat,true);
xmlhttp.send();
}

getdeals.phpには、次のようなカウントダウンタイマーコードがあります。

$(document).ready(function(){
            $("#countdown_<?php echo $id; ?>").countdown({
                date: "date_from_database",
                format: "on"
            },

            function() {
                // callback function
            });
        });

@ user2008945に助けてくれてありがとう。とにかく、ページに複数のカウントダウンタイマーが必要です。このようなことはできますが、残念ながらそうではありません。

success:function(rows){

for (var i in rows){
var row=rows[i];
var id=row[0];
var end_date=row[1];
$("#countdown_"+id).countdown({
            date: end_date,
            format: "on"
        },

        function() {
            // callback function
        });
}
}

$data=array();
while($row=mysql_fetch_row($result))
{
    $data[]=$row;
}
die (json_encode($data));
4

1 に答える 1

1

jquery ajaxに精通していない限り、このコードはあまり役に立ちませんが、jquery ajaxを使用する場合は、次のコードを使用できます。

$(document).ready(function(){

$.ajax({
url:"getdeals.php?sid="+sid+"&limit="+limit+"&cat="+cat,
type:"GET",
dataType:'json',
success:function(data){

//data contains value like {countDownId:'someid',countDownDate:'somedate'},
//its in json format,
// in your getdeals.php write some thing like this 
// die (json_encode(array('countDownId'=>'someid','countDownDate'=>'somedate')));

$("#countdown_"+data.countDownId).countdown({
                date: data.countDownDate,
                format: "on"
            },

            function() {
                // callback function
            });

}
});

        });
于 2013-02-07T20:38:33.097 に答える