2011-07-22 102 views
0

嗨,大家好,我使用php從數據庫中提取一些數據,將其編碼爲json,然後使用ajax顯示它發生了什麼是在我的json對象中,我有一個也有json對象的數組。 ..when我試圖從陣列我得到了一個未定義的javascript內訪問JSON對象,因爲它們被解釋爲字符串,而不是JSON對象問題編碼和解析json

這是我的PHP代碼:

<?php 

if ($_SERVER['HTTPS'] == 'on') { 
    require '../../Objects/Course.php'; 
    require '../config.php'; 
    require '../Tools.php'; 

    $response; 

    $c = new Course(); 
    $courses = listCourses(); 

    if (is_array($courses)) { 
     if (count($courses) != 0) { 
      $response = array('result' => true, 'data' => 'exist', 'courses' => ''); 
      foreach ($courses as $course) { 
       $response['courses'][] = json_encode($course); 
      } 
      print json_encode($response); 
     } else { 
      $response = array('result' => true, 'data' => 'empty'); 
      print json_encode($response); 
     } 
    } else { 
     $response = array('result' => false, 'data' => 'empty'); 
     print json_encode($response); 
    } 
} 
?> 

,這是我的javascript代碼:

$.post('ServiceProviders/CourseRelated/listAllCourses.php', function(data){ 
     if(data.result == true){ 
      for(var i = 0 ; i < data.courses.length ; i++){      
       alert(typeof data.courses[0]); 
      }     
     }else{ 
      alert('something went wrong while listing all the courses...try again later.') 
     } 
    },'json'); 

警報的輸出是字符串而不是對象...我該如何解決這個問題?

回答

1

嘗試$response['courses'][] = $course;更換$response['courses'][] = json_encode($course);因爲你只需要一次JSON編碼的響應。