在CodeIgniter中,我正在尝试创建一个填充Facebook Graph API数据的表。
JSON加载一个将数据传递给视图的控制器,这个视图被添加到预先存在的表中。
我的 PHP 视图如下所示:
if (array_key_exists('is_community_page', $json)==FALSE){
echo '<tr>';
echo '<td><a href="http://graph.facebook.com/' . $json['id'] . '">ID</a></td>';
echo '<td><a href="' . $json['link'] . '">'. $json['name'] .'</td>';
if (!empty($json['website'])) {
if (!preg_match("~^(?:f|ht)tps?://~i", $json['website'])) {
$json['website'] = "http://" . $json['website'];
}
echo '<td><a href="' . $json['website'] . '">' . $json['website'] . '</a></td>';
}
else {
echo '<td>N/A</td>';
}
if (!empty($json['likes'])) {
echo '<td class="num">' . number_format($json['likes']) . '</td>';
}
if (!empty($json['checkins'])) {
echo '<td class="num">' . number_format($json['checkins']) . '</td>';
}
echo '</tr>';
}
jQuery / JSON看起来像这样:
$.ajax({
url: "<?php echo site_url('controller/function'); ?>",
type: 'POST',
data: form_data,
success: function(data) {
$('#results_table').html(data);
}
});
但是当返回数据时,它只会在<a>
标记之间插入<table>
元素,而不会在<td>
或<tr>
之间插入。{/ p>
任何人都可以看到为什么它可能会忽略表行和表数据标记,但仍保留锚标记和所有所需内容?
答案 0 :(得分:0)
您是否在if之前尝试过print_r($ json),看看您是否从Facebook数据中获得了任何输出?
答案 1 :(得分:0)
根据评论,在表格中添加<tbody>
似乎可以解决这个问题。
答案 2 :(得分:0)
也许尝试将标记附加到字符串并返回最终值?
$row_data = '';
if (array_key_exists('is_community_page', $json)==FALSE){
$row_data .= '<tr>';
$row_data .= '<td><a href="http://graph.facebook.com/' . $json['id'] . '">ID</a></td>';
$row_data .= '<td><a href="' . $json['link'] . '">'. $json['name'] .'</td>';
if (!empty($json['website'])) {
if (!preg_match("~^(?:f|ht)tps?://~i", $json['website'])) {
$json['website'] = "http://" . $json['website'];
}
$row_data .= '<td><a href="' . $json['website'] . '">' . $json['website'] . '</a></td>';
} else {
$row_data .= '<td>N/A</td>';
}
if (!empty($json['likes'])) {
$row_data .= '<td class="num">' . number_format($json['likes']) . '</td>';
}
if (!empty($json['checkins'])) {
$row_data .= '<td class="num">' . number_format($json['checkins']) . '</td>';
}
$row_data .= '</tr>';
return $row_data;
}