我有一個使用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"}]
這是對的最佳方式創造這個倒計時,還是更好,更清潔的方式? 如果這是最好的方式,我怎麼能得到的功能,所有工作大聲笑:)