php - 如何从 Codeigniter Controller 中分离 Ajax 响应中的 View 和数据

标签 php jquery ajax codeigniter

我正在使用代码将数据和 View 从 CodeIgniter Controller 发送到 Ajax

$this->load->model('query_mainmodel');
$data['result'] = $this->query_mainmodel->getcategories();  
print $this->load->view('add_content',$data,true);

在 Ajax 中我有

$.ajax({
     url: url,
     type: 'POST',
     dataType: "text",
     success: function (response) {
       tabID.html(response); //now this time response contains html only
     }
});

我得到了 HTML 响应,如何从 ajax 获取数据?

最佳答案

你说你可以获取html,但现在你想要数据。因此,在您的 Controller 中,您可以将 View 和数据作为 json 传回:

$data['result'] = $this->query_mainmodel->getcategories();

echo json_encode( array(
    'view_html' => $this->load->view('add_content',$data,true),
    'data'      => $data['result']
));

然后在你的JS中:

$.ajax({
     url: url,
     type: 'POST',
     dataType: "json", // <- make sure to change this
     success: function (response) {
       // view HTML available like this
       console.log( response.view_html );

       // data available like this
       console.log( response.data );
     }
});

关于php - 如何从 Codeigniter Controller 中分离 Ajax 响应中的 View 和数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45808202/

相关文章:

php - 将任何类或任何方法声明为 "final"的示例场景是什么?

php - 把自己设定为初学者练习PHP有什么好的项目?

jquery - 可能使用 wrapCSS 属性在同一页面上设置两个 fancybox-close 实例的样式

jquery - 使用 jQuery Mobile 将水平复选框宽度拉伸(stretch)到 100%

javascript - 单击监听器以 ajax 加载内容。纯javascript

php - 如何从ajax数据发送上传pdf到服务器(使用jsPDF)

PHP MYSQL PDO BLOB上传总是空零字节

IE 中的 Javascript window.close() 弹出问题

javascript - 如何从 json_encode php 获取一个值到 ajax

jquery - 根据返回的数据设置类