2017-04-12 62 views
0

我有一些問題如何將JSON轉換爲HTML表格。CodeIgniter上的JSON轉換爲HTML表格

現在我使用CI作爲PHP的框架。
但事情是我只需要知道如何將此JSON type轉換爲HTML表格。

我只需要在HTML表中獲取這些。

  • 貨幣名稱(例如:澳元美元)
  • 和 「Jual,貝利」 號。 (如:AUD Jual:9987.1貝利9907.11)

我已經嘗試解碼那個JSON數組,但我仍然沒有得到它..

這裏是我的數組:

stdClass Object (
    [Message] => stdClass Object (
    [Code] => 200 [Message] => request success 
) 
    [Data] => stdClass Object (
    [AUD] => stdClass Object (
     [Jual] => 9987.11 [Beli] => 9907.11 
    ) 
    [CAD] => stdClass Object (
     [Jual] => 10003.21 [Beli] => 9923.21 
    ) 
    [CHF] => stdClass Object (
     [Jual] => 13236.59 [Beli] => 13136.59 
    ) 
    [CNY] => stdClass Object (
     [Jual] => 1983.66 [Beli] => 1863.66 
    ) 
    [DKK] => stdClass Object (
     [Jual] => 1934.2 [Beli] => 1854.2 
    ) 
    [EUR] => stdClass Object (
     [Jual] => 14136.37 [Beli] => 14036.37 
    ) 
    [GBP] => stdClass Object (
     [Jual] => 16638.24 [Beli] => 16538.24 
    ) 
    [HKD] => stdClass Object (
     [Jual] => 1722.32 [Beli] => 1692.32 
    ) 
    [JPY] => stdClass Object (
     [Jual] => 122.67 [Beli] => 119.27 
    ) 
    [NZD] => stdClass Object (
     [Jual] => 9242.72 [Beli] => 9162.72 
    ) 
    [SAR] => stdClass Object (
     [Jual] => 3578.14 [Beli] => 3498.14 
    ) 
    [SEK] => stdClass Object (
     [Jual] => 1511.47 [Beli] => 1431.47 
    ) 
    [SGD] => stdClass Object (
     [Jual] => 9481.43 [Beli] => 9461.43 
    ) 
    [USD] => stdClass Object (
     [Jual] => 13277 [Beli] => 13261 
    ) 
) 
    [LastUpdate] => 2017-04-12 23:00:08 
    [ProcessingTime] => 0.0388939380646 
) 
+1

做json_decode($ data,true)得到一個數組。 – Dimi

+0

您是否考慮過在控制器中構建並返回表格html?然後簡單地返回html。從它的外觀來看,html不會比JSON返回更多的數據(字節)。 Codeigniter也有一個用於構建表的漂亮庫。 – DFriend

+0

**我格式化了問題A LOT **。請在發佈你的下一個問題之前,看看http://stackoverflow.com/help/formatting –

回答

1

試試 「json_decode」(http://php.net/manual/en/function.json-encode.php)和 「foreach」 循環結構(http://php.net/manual/en/control-structures.foreach.php),兩者無論哪個一起使用的PHP框架的使用:

$json_object = json_decode(file_get_contents('http://www.adisurya.net/kurs-bca/get')) ; 

echo '<table>' ; 
foreach ($json_object -> Data as $currency => $data) { 

    echo '<tr>' ; 
    echo '<td>' . $currency . '</td>' ; 
    echo '<td>' . $data -> Jual . '</td>' ; 
    echo '<td>' . $data -> Beli . '</td>' ; 
    echo '</tr>' ; 

} 
echo '</table>' ; 
+0

是的,''和''是可選的,但是學習某人編寫較少可讀代碼並不是一個好主意。 – shaggy

+0

@shaggy謝謝指針;修改它。 – sammysaglam

+0

因爲現代瀏覽器修復它,所以它是「實踐中」的選項*。不過,它需要成爲有效的HTML。 –

0

如果您使用AJAX檢索此數據。我會建議先使用JSON.parse函數,然後在頁面中使用每個循環。

如果您的表

<table id="mytable"></table> 

JQUERY AJAX代碼

$.get("http://www.adisurya.net/kurs-bca/get", function(data, status) { 

    if (status == "success") { 
    var loopdata = JSON.parse(data); 
    $.each(loopdata.data, function(i, item) { 
     $('#mytable').append("<td>"+item+"</td>"); 
    }); 
    } 
}); 
+0

感謝AJAX代碼,但我需要的只是用於顯示,謝謝回答:) –

0

要轉換JSON反對,而不是一個數組。最好的辦法是處理JSON在你的控制器:

$json = file_get_contents('http://www.adisurya.net/kurs-bca/get'); 
$data['json_array'] = json_decode($json, true); 

,並通過陣列到您的視圖(更改您的視圖的名稱):

$this->load->view('homepage', $data); 

在你看來,你附和你的表:

if (!empty($json_array)) { 
    echo '<table>'; 
    foreach ($json_array as $currency => $currency_data) { 
     echo '<tr>'; 
     echo '<td>'.$currency.'</td>'; 
     echo '<td>'.$currency_data['Jual'].'</td>'; 
     echo '<td>'.$currency_data['Beli'].'</td>'; 
     echo '</tr>'; 
    }  
    echo '</table>'; 
} 
+0

感謝@shaggy但它似乎是一個PHP錯誤遇到
未定義指數:貝利和非法串偏移「Jual」是什麼原因造成的? –

+0

與foreach有點混淆,就像@sammysaglam有.. –