jsonデータを使用して入札を確認するJavaScriptファイルがあります。クライアント側のデータをサーバー側のメソッドに渡す
私が持っている問題は、カウントダウンのプラグインが、パラメータが渡されないonExpiry関数を持っていることです。カウンタが期限切れになる前にコールバックが呼び出されたときです。カウントダウンの満了時にオークションをWonに設定し、ユーザーに警告して勝者テーブルに追加する必要があります。これのほとんどはPHPで処理されますが、私が作った関数はauction_idとユーザー名を渡す必要がありますが、パラメータを渡すことなく、これをどうやって行うのか考えることはできません。ここに私が現在持っているコードがあります。
はウォンPHP関数です:ここで
function isWon($user, $auction){
$this->load->model('Auction_model', 'Auction');
$this->load->model('Bid_model', 'Bid');
$this->load->model('Customer_model', 'Customer');
$makeWon = $this->Auction->isWon($auction);
$customer = $this->Customer->getByUsername($user);
if ($makeWon){
$json = array(
'success' => 'Congratulations '.$user.' You have won.',
);
}
echo json_encode($json);
}
Common.Js
function checkBids(){
var id = $('div.auction').attr('id');
$.ajax({
url: 'http://localhost/tinybid/index.php/auction/auctiondata',
dataType: 'json',
success: function(json) {
for (var i = 0; i < json.length; i++) {
$('#auction'+json[i]['i']+' li.user').html(json[i]['u']);
$('#auction'+json[i]['i']+' li.curPrice').html(json[i]['p']);
if (typeof json[i]['t'] =='number'){
$('#auction'+json[i]['i']+' li.timer').countdown({until: startTimer(json[i]['i'],json[i]['t']), onExpiry: isWon});
}
}
}
});
}
function startTimer(auction, stamp){
var time= new Date();
time.setTime(stamp*1000);
$('#auction'+auction+' li.timer').countdown('change', {until: time});
}
function isWon(user, auction){
if (user){
$.ajax({
url: 'http://localhost/tinybid/index.php/auction/isWon/'+user+'/'+auction,
dataType: 'json',
success: function(json) {
if (json['success']){
alert(json['success'])
}
}
});
}
}
JSONはcheckBids()関数に
[{"i":"5","t":1324374080,"p":"£ 0.13","u":"chrissy"}]
を返され、これはするための最良の方法ですこのカウントダウンを作成するか、より良い、よりクリーンな方法ですか? これが最善の方法であれば、どのようにしてすべての仕事に関数を得ることができますか?