我想使用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
你在'course_overview_functions.php'中包含了你的數據庫嗎? – leonardeveloper
是的,我包括它 – Eli
嘗試仔細檢查你的拼寫某種。由於沒有包含它將不會連接的情況。嘗試將'course_overview_functions.php'放入url中以更智能地進行調試。 – leonardeveloper