Вот общий пример того, что вы можете попробовать, это предполагает, что у вас есть форма и вы хотите использовать эти данные публикации, или вы можете сделать что-то вроде (".button"). Click (...
После извлечения данных из запроса вы можете загрузить представление в переменную, а не отправлять его непосредственно для вывода, установив для третьего параметра загрузчика представлений значение true. При этом вы можете отправлять несколько представлений.вернуться на страницу, и это не заставляет вас писать html в контроллере.
Javascript code
<!-- language: lang-js -->
$(document).ready(function(){
$("#form").submit(function(e){
e.preventDefault();
$.post("base_url+"/controller/method", $("#form").serialize(),
function(data){
if(data.status == "valid"){
$(".view1").html(data.view1);
$(".view2").html(data.view2);
}
}, "json");
});
});
И ваш php контроллер
class Controller extends CI_Controller {
public function method()
{
$this->load->model('Some_model','', TRUE);
$data['results'] = $this->Some_model->some_function();
if($data['results']['status'] == "valid"){
$json['status'] = "valid";
$json['view1'] = $this->load->view('view1',$data,true);
$json['view2'] = $this->load->view('view2',$data,true);
echo json_encode($json);
}
else {
$json['status'] = "invalid";
$json['error'] = "<h3>Login Failed</h3>";
echo json_encode($json);
}
}
}
и ваша модель php
class Some_model extends CI_Model {
public function some_function()
{
$query=$this->db->get('orx_categories');
if($query->num_rows() > 0) {
$sata['status'] = "valid";
foreach($sql->result() as $row) {
$data['results'][] = $row;
}
}
else {
$data['status'] = "invalid";
}
return $data;
}
}