我正在致力於CodeIgniter
和AJAX
。我想要做的是我有一個包含員工列表的數據表。點擊按鈕後,我得到僱員的ID
並將其發送給我的控制器,在該控制器中,我從該特定員工的數據庫中獲取所有必要的詳細信息。我已經這樣做了。 我面臨的問題是,如何在使用特定的員工詳細信息成功調用ajax後,如何重定向到viewEmployeeProfile
頁面。從ajax調用服務器接收HTML並使用該HTML加載頁面
這裏是我的代碼:
JS
$('#viewAllEmployeeTable tbody').on('click', '.viewEmployeeDetail', function() {
var data = viewAllEmployeeTable.row($(this).parents('tr')).data();
employeeID = data.employeeID;
$.ajax({
url: "/ackamarackus/employee/viewEmployeeProfile",
type: "POST",
data: {
"employeeID": employeeID
},
dataType: "json",
success: function(data) {
console.log(data);
},
error: function(error) {
//console.log(error);
}
});
});
viewEmployeeProfile功能
public function viewEmployeeProfile() {
$employeeID = $this->input->post('employeeID');
$data['employeeBasicDetails'] = $this -> getemployeeBasicDetailsFromDatabase($employeeID);
$data['employeeDepartmentalDeails'] = $this -> getemployeeDepartmentalDeailsFromDatabase($employeeID);
$data['employeeSalaryDetails'] = $this -> getemployeeSalaryDetailsFromDatabase($employeeID);
$data['employeeEducationDetails'] = $this -> getemployeeEducationDetailsFromDatabase($employeeID);
$data['employeeJobHistoryDetails'] = $this -> getemployeeJobHistoryDetailsFromDatabase($employeeID);
$data['employeeTrainingDetails'] = $this -> getemployeeTrainingDetailsFromDatabase($employeeID);
$data['header'] = 'template/header';
$data['sidebar'] = 'template/sidebar';
$data['main_content'] = 'viewEmployeeProfile';
$data['footer'] = 'template/footer';
echo $this -> load -> view('template/template', $data, TRUE);
}
模板/模板視圖
//This view is generic and implements templating
$this->load->view($header);
$this->load->view($sidebar);
$this->load->view($main_content);
$this->load->view($footer);
請求後console.log(data)
;給我的HTML viewEmployeeProfile view
我也試圖從$ data數組中回顯內容,如print_r($employeeBasicDetails);
,它給了我正確的信息。但我不知道如何加載從Ajax調用收到的HTML視圖?
任何想法如何做到這一點,或者是否有任何這種解決方案的好處,可能是我這樣做都是錯誤的。任何在這個輸入將不勝感激。謝謝。
必須對每個字段進行數據庫調用*看起來非常浪費和低效。爲什麼你不能一次獲取記錄並提取你感興趣的領域?我敢打賭,這是編寫一個自制ORM的結果,但不知道它們應該如何運作。看看[Doctrine](http://www.doctrine-project.org/),[Propel](http://propelorm.org/)和[Eloquent](https://laravel.com/docs/) 5.3 /雄辯)在重新發明車輪之前。 – tadman
使用適當的ORM應該像1一樣簡單。獲取記錄。 2.將字段轉儲爲JSON。 – tadman
@tadman感謝你的好主意,但我稍後會關注它。你的回答不是我在問題 –