使用 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 中