我正在使用CodeIgniter处理我正在进行的项目。
我在这样的视图中有一个ajax调用:
$.ajax({
type: 'GET',
url: 'extra/search/infojson/' + $(this).text().replace(/\s/g, "+");
success: function(data) {
/* Do something with that data */
}
});
infojson
是控制器中的一个方法,它接受'username'参数,进行搜索,并返回一个JSON对象。有没有办法可以返回这些数据,而无需为它创建另一个视图?此方法仅用于从这一页返回此类数据,因此我无法理解为什么我需要为此创建另一个视图。我读过关于_output()
的内容,但这对我没有任何意义。
答案 0 :(得分:4)
这就是答案:
在回显之前放置$this->config->set_item('compress_output', FALSE);
以禁用输出压缩。
答案 1 :(得分:1)
当然。
使用PHP的json_encode()
函数返回数据,无需调用$this->load->view('someview', $data);
在ajax请求中将数据发送回浏览器。
class Extra extends CI_Controller{
function __construct(){
parent::__construct();
}
function search($username){
$results = your_search($username);
echo json_encode(array("results" => $results));
}
}
你的jquery:
$.ajax({
type: 'GET',
dataType: "json",
url: 'extra/search/infojson/' + $(this).text().replace(/\s/g, "+");
success: function(data) {
if(data.results){
/* Do something with the results */
}
}
});
答案 2 :(得分:1)
如果要压缩配置文件中的输出,请尝试设置$config[‘compress_output’] = FALSE;