2011-06-22 56 views
1

我創建了一個PHP頁面,它模擬了我在本地主機上設計的一個電臺站點的http://www.radioborders.com/on-air/station-schedule只有表部分)的外觀。這是一個測試網站,讓我嘗試CSS/PHP/MySQL開發。JSON與我的PHP頁面

我的頁面地址是http本地主機/無線電臺/ mytestpage(由mod_rewrite的隱藏擴展名.php)

這是頁面的代碼: http://pastebin.com/EvK7VzMy

然而,它鏈接到外部JSON,這不是我想要的。

我想創建一個PHP/MySQL的陣列,它使用我的數據庫具有以下表:

主持人(VARCHAR,255) 圖像(VARCHAR,255) - 不知道這是最好的方式來存儲它 showdesc(VARCHAR,255) 通話時間(時間) 期滿(時間)

我不知道如何讓我的代碼從本地主機上的回調中進行選擇。

從網站的原始代碼:

  // load the schedule. 
      $.getJSON('http://radioplayer.bauerradio.com/schedule.php?callback=?', { 
       name: 'Radio Borders' 
      }, function(json){ 
       // loop each show and append to our giant table. 

我的計劃版本:

  // load the schedule. 
      $.getJSON('http://localhost/myradiotest1/schedule.php?callback=?', { 
       name: 'Radio1FM' 
      }, function(json){ 
       // loop each show and append to our giant table. 

(我有schedule.php頁面,但直到我弄清楚它在此刻只是空白什麼與它做)

我是JSON的新手,並發現這將比我以前使用通過PHP從MySQL中提取數據的動作更多(以腳本形式)關於,我可以做得很好。

我需要做些什麼來獲得JSON回調才能正常工作,以及如何才能實現此目標?任何建議都非常感謝,我會嘗試一下,看看會發生什麼。

在版權條款中,我使用的是現有的 JSON腳本,這是合理的使用方式,因爲它僅用於我的教育用途,而不是商業分佈式。

回答

1

使用PHP數組構建陣列,然後使用json_encode()將數據編碼到JSON數組中。

$dataArray = array('success' => true, 'error' => '', 'data' => getDBArray()); 

echo json_encode($dataArray) . ';' ; 

現在,在這一點上支持JSONP是微不足道的。您只需修改代碼即可:

$json = json_encode($dataArray); 

// Check if $_GET['callback'] contains a valid JavaScript function name 
if(preg_match('/^[$A-Za-z_][0-9A-Za-z_]*$/', $_GET['callback'])) { 
    echo $_GET['callback'] . '(' . $json . ');' ; 
} else { 
    echo $json . ';' ; 
}