2013-10-09 11 views
0

我想使用ajax更新我的內容。通過選擇下拉值,內容將根據所選下拉值填充新值。但每次我從我的下拉列表中選擇一個值時,它會返回一個Class'db'找不到的錯誤,而我已經放在我的required_once上的其他函數似乎也無法正常工作。我一直試圖解決這個問題已經有2天了,但它仍然無法正常工作。有人可以幫助我嗎?謝謝。以下是我的代碼:即使已經定義了數據庫連接,Ajax調用也會返回類'db'找不到的錯誤

請注意,當加載my_file.php時,將調用course_overview_functions.php,並且加載else部分,並返回相應的值。執行ajax調用時,如果部分返回true,則返回類'db'not found錯誤。

my_file.php

require_once 'includes/course_overview_functions.php'; 

$course_array = array(); 
$pid_shown = array(); 
$course_array = ajax_request_val(); 

my_file.php(JavaScript的一部分)

$(':input').change(function(event){ 
    event.preventDefault(); 
     $('.minimal_table').html('<img src="../images/loading_trans.gif" style="position:relative; margin:350px; margin-top:250px;" />'); 
     alert($(this).val()); 

     var val_id = $(this).val(); 

     var postData = {val_id:val_id, ajax:1 }; 

$.ajax({ 
    url: "../includes/course_overview_functions.php", 
    async: false, 
    type: "POST", 
    data: postData, 
    dataType: "html", 
    success: function(data){ 
    setTimeout(function(){ 
    $('.minimal_table').html(data); 
    },2000); 
    console.log(data); 
    }, 
    }); 

}); 

course_overview_functions.php

function ajax_request_val(){ 


$val_id = $_POST['val_id']; 
$field = "course_type"; 

if(isset($val_id)){ 


    $plans = db::getTable('plan',$field,$val_id); 
      foreach ($plans as $plan) { 
       if (eventAccessLevel(null, $plan['plan_id']) != EVENT_ACCESS_NONE) { 
        $course_array[] = getCourseDetails(null, $plan['plan_id']); 
        $pid_shown[] = $plan['plan_id']; 
       } 
      } 
      $events = db::getTable('tbl_event',$field,$val_id); 
      foreach ($events as $event) { 
       if (!in_array($event['plan_id'], $pid_shown)) { 
        $event_id = $event['event_id']; 
        if (eventAccessLevel($event_id, null) != EVENT_ACCESS_NONE) { 
         $course_array[] = getCourseDetails($event_id, null); 
        } 
       } 
      } 

      return $course_array; 
} 

else{ 

      $plans = db::getTable('plan'); 
      foreach ($plans as $plan) { 
       if (eventAccessLevel(null, $plan['plan_id']) != EVENT_ACCESS_NONE) { 
        $course_array[] = getCourseDetails(null, $plan['plan_id']); 
        $pid_shown[] = $plan['plan_id']; 
       } 
      } 
      $events = db::getTable('tbl_event'); 
      foreach ($events as $event) { 
       if (!in_array($event['plan_id'], $pid_shown)) { 
        $event_id = $event['event_id']; 
        if (eventAccessLevel($event_id, null) != EVENT_ACCESS_NONE) { 
         $course_array[] = getCourseDetails($event_id, null); 
        } 
       } 
      } 

      return $course_array; 
    }  
    } 

databaseconnect.php

public static function getTable($tableName,$field='',$type_id='') { 
     if (!self::$db) self::connect(); 

     if(!empty($type_id)){ 
      $tableName = self::$db->escape_string($tableName); 
      return self::getObjects('SELECT * FROM `' . $tableName . '` WHERE `'. $field .'` = `'. $type_id .'`;'); 
     } 
     else{ 
      $tableName = self::$db->escape_string($tableName); 
      return self::getObjects('SELECT * FROM `' . $tableName . '`;'); 
     } 
    } 

錯誤:

Fatal error: Class 'db' not found in /home/cm/public_html/includes/course_overview_functions.php on line 207 
+0

你在'course_overview_functions.php'中包含了你的數據庫嗎? – leonardeveloper

+0

是的,我包括它 – Eli

+0

嘗試仔細檢查你的拼寫某種。由於沒有包含它將不會連接的情況。嘗試將'course_overview_functions.php'放入url中以更智能地進行調試。 – leonardeveloper

回答

0

你databaseconnect ......你有一個功能,但沒有定義的類。您需要定義一個class db

+0

對不起,我沒有shoew如何連接到我的databse在這裏,但這已經連接。但它是在我的初始負載工作,數據成功檢索,只是當我打電話給我的ajax,它不會連接到我的數據庫了 – Eli

相關問題