使用 PHP 填充 JSON

Posted

技术标签:

【中文标题】使用 PHP 填充 JSON【英文标题】:JSON Padding With PHP 【发布时间】:2014-03-11 20:56:50 【问题描述】:

请任何人帮助我尝试在我的 html5 本地主机页面上显示我的 JSON 数据,

我还是 JSON 新手

我得到以下返回,但页面上没有加载数据。

http://www.hostname/getCheck.php?callback?&callback=jQuery110205560797746881064_1392215061343&_=1392215061344

如果有人可以帮忙,请。

下面是我的php脚本

`mysql_select_db($database_xxx, $xxx); $rsfet = "SELECT * FROM cs_tracking "; $fet = mysql_query($rsfet, $xxx) or die(mysql_error()); $json = array(); while($r=mysql_fetch_array($fet)) $json[] = $r;

header('Access-Control-Allow-Origin: *');
回声 $callback ='('.json_encode($json).')';`

和我的 javascript 来显示表格数据

` $(文档).ready(函数() $.ajax( url: 'http://xxxxxxxxxxx.com/getCheck.php?callback=?', 类型:'GET', contentType: "应用程序/json; charset=utf-8", 数据类型:“jsonp”, jsonp:是的, 成功:函数(数据) $.each(数据,功能(我,照片) 变量 tblRow =“” +""+data.CS_Track_Child+"" +""+data.CS_Track_Date+"" +""+data.Tracking_Status+"" +""+data.CS_Tracking_ID+"" +"" ; $(tblRow).appendTo("#userdata tbody"); ); , ); );`

【问题讨论】:

【参考方案1】:

$callback 变量没有在您的脚本中神奇地声明(至少不应该这样);您可以通过$_GET['callback'] 访问该值,但请确保清理其值:

if (isset($_GET['callback']) && preg_match('/[A-Z]\w*/i', $_GET['callback']) 
    header('Content-Type: application/javascript');
    header('Access-Control-Allow-Origin: *');
    printf('%s(%s);', $_GET['callback'], json_encode($json));

【讨论】:

我尝试了代码,我的 php 脚本正在生成 JSON,我的表格显示每个值的未定义。【参考方案2】:

您有两个callback GET 参数,一个有效但为空,第二个无效。

http://www.hostname/getCheck.php?callback?&callback=jQuery110205560797746881064_1392215061343&_=1392215061344

url: 'http://xxxxxxxxxxx.com/getCheck.php?callback=?',

所以删除你的参数并尝试这个:

url: 'http://xxxxxxxxxxx.com/getCheck.php',

【讨论】:

我发现了问题; 我没有调用表格内的正确数据。我使用 data.CS_Track_Child 而不是 item.CS_Track_Child,我还将 (i,photo) 更改为 (i,item) 谢谢大家的帮助。

以上是关于使用 PHP 填充 JSON的主要内容,如果未能解决你的问题,请参考以下文章

PHP-AJAX:如何通过 php/json 数组从查询中填充 jquery 数据表

jQuery 使用 jQuery ajax json、php 将项目填充到 Select 中

使用 json rereiver php mysql 在片段中填充列表视图

使用 JSON 填充 ComboBox ExtJS 4.2

使用远程 JSON 数组填充 UIPIckerView

显示本地存储的图像以响应 JSON 表填充结果