关于jquery ajax 的疑问
$.ajax({type:"post",
data: "picID=" + $(this).attr("id"),
url:"<?=site_url('photogallery/getPhoto')?>",
success: function(result) {
alert(
result
);},
error: function() {alert("ajax error");}
});
Controller层:
function getPhoto()
{
//query the picture from model
$query = $this->photomodel->getPic($this->input->xss_clean($this->input->post('picID')));
if($query->num_rows() > 0)
{
$row = $query->row();
$output = "<divclass='winBar'><ul><li>_</li><li>x</li></ul></div><divclass='winContent'><div id='photo_title'>" . $row->photoName . "</div><div id='photo_item'>" . $row->photoLink . "</div><div id='photo_comment'>" . $row->comment . "</div></div>";
}
else
$output = "no picture was found";
echo($output);
}
我想问的是,如何实现在Controller层 不写“echo” 而是是 “return” ?
因为我换成“return” 的时候, Ajax不能获取返回值 ! 但是又想不到能在view视图里面输出的方法......................
你用json返回这个图片地址后,然后在echo出来到view,然后$.parseJSON,然后再appendTo..... 你既然一定要用AJAX这种异步方式,可以用JSON返回 return是肯定不行的 这个有点吊 $output 为什么不能放到视图呢? 我就是不知道怎么放啊?我现在脑袋转不了弯~
getPhoto()和 $output 都是Ajax部分, 难道在getPhoto()里面重新导入视图$data['output '] = $output;$this->load->view('contents',$data); 之后再输出? 还是??:dizzy: $this->output->append_output($output); 哇塞,的确可以了,太神奇了,问题是,append_output,请问,这个东西是从哪里来的?在文档里面搜不到啊,输出类里面也没有? 您可以讲一讲吗? 这肯定是 output 类里的方法啊。
看起来是未公开的 API 吧。 还有未公开的api? 什么样的原因没有公开呢? 论坛里面有没有地方讲讲未公开的api呢? 哈哈 个人意见~~总之 问题解决了很开心,再次感谢您的帮助,还有咱们的版主! 呵呵 windows 都有很多未公开 api,CI 当然也有。
至于为什么不公开,那就要问作者了,呵呵。 看来找个组织还是很有必要性的! 本帖最后由 天梯梦 于 2009-12-11 04:31 编辑
哈哈,我找到了!!
http://www.tig12.net/downloads/a ... I_Output.class.html
http://www.tig12.net/downloads/a ... thods_append_output
看来的确是有遗漏的啊~~
页:
[1]
2