我的PHP页面的JSON

时间:2011-06-22 13:34:35

标签: php javascript mysql json callback

我创建了一个PHP格式的页面,它为我在localhost上设计的广播电台网站模拟了http://www.radioborders.com/on-air/station-schedule表格部分)的外观。这是一个测试网站,让我尝试CSS / PHP / MySQL开发。

我的页面位于http localhost / radiostation1 / mytestpage(mod_rewrite隐藏的.php扩展名)

这是该页面的代码: http://pastebin.com/EvK7VzMy

但是,它链接到外部JSON,这不是我想要的。

我正在考虑创建一个PHP / MySQL数组,它使用我的数据库,其中包含以下表格:

演示者(varchar,255) image(varchar,255) - 不确定这是否是存储它的最佳方式 showdesc(varchar,255) 通话时间(时间) 到期(时间)

我不知道如何让我的代码从localhost上的回调中选择。

网站的原始代码:

            // 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的数据更加动态(在脚本术语中),因为我已经了解了,我可以做得很好。< / p>

我需要做些什么才能让JSON回调工作?最好的方法是什么?非常感谢任何建议,我会试一试,看看会发生什么。

在版权方面,我使用现有的 JSON脚本,这是合理使用,因为它仅供我的教育用途,而不是商业分发。

1 个答案:

答案 0 :(得分: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 . ';' ;
}