私はCodeIgniter
とAJAX
を処理しています。私がしていることは、従業員のリストを含むデータテーブルを持っていることです。ボタンをクリックすると私は従業員のID
を取得し、私はその特定の従業員のDBから必要なすべての詳細を取得私のコントローラに送信します。私はすでにこれをしています。 私が直面している問題は、特定の従業員の詳細との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)
;私にviewEmployeeProfile view
の のHTMLを与えます私はまた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素敵なアイデアをありがとうございますが、私は後でそれに焦点を当てます。あなたの答えは、私の質問で尋ねたものではありません。 –