2016-03-15 116 views
0

我想使用一個jQuery插件倒計時。 (我也使用PHP框架)。這是我的主網頁腳本:jquery getjson函數:回調返回錯誤的字符串

<script type="text/javascript"> 
$(document).ready(function() { 
    $.get(baseUrl + "/countdown", {id: "609|610|611|612"}, function (data) { 
     auctions = data.split("||"); 
     for (n = 0; n < auctions.length; n++) { 
      if (auctions[n] != undefined) { 
       divis = auctions[n].split("##"); 
       if (divis[1] != "stop") { 
        $('#bid' + divis[0]).countdown(divis[1], function (event) { 
         var totalHours = event.offset.totalDays * 24 + event.offset.hours; 
         $(this).html(event.strftime(totalHours + ' hr %M min %S sec')); 
        }); 

       } else { 
        $('#bid' + divis[0]).html("closed"); 
       } 

      } 
     } 
    }); 
}); 

的「倒計時」是一個PHP文件,返回字符串:

609##stop||610##stop||611##2016/03/28 13:00:56||612##2016/04/03 01:00:00|| 

用這個,使我太多錯誤。如果我將「auctions.length」更改爲「4」,所有內容都會變得正確和正確!我檢查了「數據」的值,而不是「countdown.php」返回的確切字符串,它更大幷包含一些空格!我也檢查了「auctions.length」的值,它是7! 我不知道爲什麼會發生這種情況。

也當我更改$ .get到$ .getJSON沒有倒計時顯示。這是爲什麼?

感謝您的關注:) 並感謝您對我的英語錯誤的寬容。

回答

0

因爲您的響應數據不是JSON格式,所以$ .getJSON什麼也沒有,我建議您使用JSON格式進行響應。

在PHP

$data = array(
    array(
     'id' => '609', 
     'datetime' => 'stop' 
    ), 
    array(
     'id' => '610', 
     'datetime' => 'stop' 
    ), 
    array(
     'id' => '611', 
     'datetime' => '2016/03/28 13:00:56' 
    ), 
    array(
     'id' => '612', 
     'datetime' => '2016/04/03 01:00:00' 
    ) 
); 
echo(json_encode($data)); 

,並在JavaScript

$(document).ready(function() { 
    $.getJSON(baseUrl + "/countdown", {id: "609|610|611|612"}, function (auctions) { 
     for (n = 0; n < auctions.length; n++) { 
      if (auctions[n] != undefined) { 
       divis = auctions[n]; 
       if (divis.datetime != "stop") { 
        $('#bid' + divis.id).countdown(divis.datetime, function (event) { 
         var totalHours = event.offset.totalDays * 24 + event.offset.hours; 
         $(this).html(event.strftime(totalHours + ' hr %M min %S sec')); 
        }); 

       } else { 
        $('#bid' + divis.id).html("closed"); 
       } 

      } 
     } 
    }); 
}); 
+0

不要忘記設置Content-Type的響應頭,當你輸出HTML以外的東西。 PHP默認聲稱所有輸出都是HTML。 – Quentin

+0

@學習:謝謝,但它沒有work.still與getJSON我沒有倒計時。有趣的是當我添加console.log(數據); - 當我使用get() - 這是什麼控制檯顯示我:609 ## stop || 610 ## stop || 611 ## 2016/03/15 20:20:56 || 612 ## 2016/04/03 01:00:00 || <!doctype html> .....<! - Body Close - >它將整個html附加到「data」! – Niloofar