2017-11-22 9 views
0

PHP jsonについて助けが必要です。私はまだこのことについて初心者です。私は他の方法を試みたが、失敗したようだ。私はこの種のjsonフォーマットを持っています:codeigniterを使ってjsonのデータを表示するには

{ 
     "schedule_backup": [ 
      { 
       "class_time_id_fk": "1", 
       "student_id_number": "AR0001", 
       "teacher_id_number": "ACAD-0091", 
       "class_type_id_fk": "1", 
       "room_assignment_id_fk": "4", 
       "books_materials_id_fk": "225", 
       "class_level_id_fk": "23", 
       "subject_id_fk": "57" 
      }, 
      { 
       "class_time_id_fk": "2", 
       "student_id_number": "AR0001", 
       "teacher_id_number": "ACAD-0049", 
       "class_type_id_fk": "1", 
       "room_assignment_id_fk": "41", 
       "books_materials_id_fk": "211", 
       "class_level_id_fk": "4", 
       "subject_id_fk": "58" 
      } 
     ] 
    } 

そして私はテーブルにそれらを表示したいと思います。ここに私のコードは次のとおりです。あなたが非同期的に、またはAPIを介してこれを渡している場合を除き

マイビュー

echo $jsonString = $this->MClassSchedule->parse_schedule_backup(); 

$jsonArray = json_decode($jsonString,true); 

echo $jsonArray['schedule_backup']['class_time_id_fk']; 

モデル

function parse_schedule_backup(){ 
    $this->db->select('*'); 
    $this->db->from('class_schedule_backup'); 
    $query = $this->db->get(); 

    foreach ($query->result() as $rows) { 

     return $rows->data; 

    } 

} 
+0

あなたはこのためにJSONを使用している理由は、特定の理由がありますか?あなたはAjaxを使用していますか、これはまっすぐなものですか? – Alex

+0

配列を必要としない限り、Jsonでデコードする必要はないオブジェクトと戻ってくるオブジェクトです。その場合は、結果配列を返し、モデル内のforeachを削除してください。それで、テーブルを作ることは、foreachを使って見やすくなります。 – Alex

+0

@Alex私はそれを見るだけです。私は後でajaxを使いたい。 – johnlopev

答えて

1

、JSONに変換する厄介なようですその後、戻ります。ちょうど以下のモデルのようなデータ配列を返してください。

モデル

function parse_schedule_backup(){ 
    $this->db->select('*'); 
    $this->db->from('class_schedule_backup'); 
    $query = $this->db->get(); 

    // Return associative data array 
    return $query->result_array(); 
} 

そしてビューで、テーブル構造の内側の列を通るだけループ。人はテーブルをテンプレート化するために異なるスタイルを持っていますが、1つの方法は以下の通りです(明らかにすべての列を含むわけではありません)。

マイビュー

<?php 
// You probably want to do this in the controller and pass the data to the view 
$data = $this->MClassSchedule->parse_schedule_backup(); 
// Create table header 
?> 
<table> 
    <thead> 
     <tr> 
      <th>Class ID</th> 
      <th>Teacher ID</th> 
      <th>Student</th> 
     </tr> 
    </thead> 
    <tbody> 
<?php 
    // You probably want to check for a non-empty array and provide an error if needed 
    foreach($data as $row){ 
     $json = json_decode($row['data'], TRUE); 
?> 
     <tr> 
      <td><?= $json['schedule_backup']['timeID_1']['class_time_id_fk'] ?></td> 
      <td><?= $json['schedule_backup']['timeID_1']['student_id_number'] ?></td> 
      <td><?= $json['schedule_backup']['timeID_1']['teacher_id_number'] ?></td> 
     </tr> 
<?php 
    } 
?> 
    </tbody> 
</table> 
+0

あなたの答えをありがとう。しかし、私はstudent_id_numberだけを取得し、残りは空です。 – johnlopev

+0

結果に他のフィールドのデータがありますか?テストのためにできることの1つは、 'print_r'といっしょに' foreach'に行全体を表示して、あなたが期待する値を得ていることを確認することです。 – kchason

+0

いいえ、student_id_番号のみ。私のデータベーステーブルにはID、student_id_number、data、date_createdがあります。 jsonがデータ行に格納される場所。 – johnlopev

関連する問題