3

データベースから複数のオークションレコードをフェッチするために使用するphpループがあります。オークションの一環として、終了するまでカウントダウンをしたいと思います。私はもともと、最初のレコードだけがカウントダウンタイマーを表示している(動作している)という問題を抱えていましたが、おそらくjqueryセレクターに毎回同じIDを与えていたためだと判断しました。だから私はそれを変更して、各ループでdivとjquery関数に与える新しいIDが生成されるようにしました。しかし、スクリプトの結果を見ると、カウントダウンタイマーがテーブルの行に表示されません。

   while($row = $stmt->fetch(PDO::FETCH_ASSOC)){        
       $ID = $row['ID'];
            $cdRand = '#row'.$ID;
                $img = $row['img'];
                $desc = $row['description'];
                $name = $row['name'];
                $owner = $row['owner'];
                $cprice = $row['sprice'];
                $iprice = $row['iprice'];
                $incprice = $row['incprice'];
                $etime = $row['etime'];
                $nextBid = $cprice + $incprice;

            $stmt2 = $pdo->prepare("SELECT * FROM user WHERE username = :username");
            $stmt2->bindParam(":username", $owner,PDO::PARAM_STR);
            $stmt2->execute();

            $thisuser2 = $stmt2->fetch(PDO::FETCH_ASSOC);
            $location = $thisuser2['location'];

            echo'

            <tr class="resultindex">

            <td class="imgCol"><a href="displayAuct.php?id='.$ID.'"><img src="'.$img.'" alt="'.$name.'" /></a></td>
            <td class="infoCol">

                <div class="nameDiv">
                    <a class="nameLink" href="displayAuct.php?id='.$ID.'">'.$name.'</a><br/>
                </div>
                <div class="descDiv">
                    <span class="priceLabel2">'.$desc.'</span>
                </div>

                <div class="userdiv">
                    <span class="fromuser">Location: </span><br/>
                    <span class="location">'.$location.'</span>
                </div>
            </td>
            <td style="width:1px; background-color:#330066;" ></td>

            <td class="timerCol">
                <div class="currentp" style="height: 50px;"><span class="priceLabel">Current Bid: </span><br/><span class="price1">$'.$cprice.'</span></div>
                <div id="timeRow" style="height: 30px;">
                    <span class="timeleft">Time Left: </span>
                </div>
                <div id="'.$cdRand.'" style="height:80px;"></div>

                <script type=text/javascript>
                var timestamp = '. $etime * 1000 .';
                var endTime = new Date();
                endTime.setTime(timestamp);



                $("'.$cdRand.'").countdown({until: endTime});

                </script>
            </td>
            </tr>

                ';

なぜそれが機能しないのかよくわかりません。カウントダウンタイマーはキースウッドのカウントダウンプラグインhttp://keith-wood.name/countdown.htmlです。助けていただければ幸いです。

乾杯、バンディ

4

1 に答える 1

2

これはIDセレクターです。

#row11

これは<div>有効なid属性を持つです:

<div id="row11">

しかし、これは有効なid属性ではありません:

<div id="#row11">

を含める$cdRandべきではなく#、jQueryには次の#ようなものを含める必要があります。

$("#'.$cdRand.'").countdown({until: endTime});
于 2012-09-19T05:59:37.090 に答える