用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4188|回复: 4
收起左侧

[讨论/交流] 原创!!CI+jQuery实现Ajax

[复制链接]
发表于 2012-2-21 17:10:52 | 显示全部楼层 |阅读模式
要点:
1.在控制器中,对应的method最后输出采用:
echo $this->load->view(视图,数据,true);
2.在js脚本中,对应的post语句:
$.post( $(this).attr("href"), function(data){$(选择器).html(data);});
第一个,是利用view函数的true参数,将输出存到字符串中,而不是直接输出到浏览器。
第二个,由于CI的url的格式分段,因此传统的查询字符串不方便使用,这里直接用jQ对象的.attr()函数取得原链接,而不是组建查询字符串。
发表于 2012-2-22 17:09:02 | 显示全部楼层
本帖最后由 lnxa 于 2012-2-22 17:10 编辑

你這個沒有狀態返回
我比較喜歡用json輸出結果



controller

PHP复制代码
class ajax extends CI_Controllers {
   
    function __construct()
    {
        parent::__construct();
    }
   
    public function get()
    {
      $data['status'] = 'success'; // 成功的狀態
      $data['result'] = '我要的內容';
     
      echo json_encode($data);
    }
 
}
复制代码


html jquery

JS复制代码
$.get('ajax/get', function(data){
   if (data.status == 'success')
   {
       alert(data.result);
   }
   else
   {
      alert('出錯了!');
   }
   
}, 'json');
复制代码

  

发表于 2012-2-23 13:37:25 | 显示全部楼层
顶一下!
发表于 2012-4-17 14:46:04 | 显示全部楼层
本帖最后由 指尖的殤魂 于 2012-4-17 14:47 编辑
lnxa 发表于 2012-2-22 17:09
你這個沒有狀態返回
我比較喜歡用json輸出結果

我的还是接收不了,
JS复制代码
 
$(document).ready(function() {
    $("#fileUp").ajaxForm({
        success: complete,  // post-submit callback
        dataType: 'json'
    })
        function complete(data){
                alert(data);
            if (data.status=='success')
            {
                alert(data.info);//成功信息
            }else{
                    alert(data.info);//失败信息
            }
        }
       
});
 
复制代码

PHP复制代码
 
                if(!$this->upload->do_upload()){
                        $data['info'] = $this->upload->display_errors();
                        header('Content-Type:text/html; charset=utf-8');
                        exit(json_encode($data));
                }else{
                        header("Content-Type:text/html; charset=utf-8");
                        $data['status'] = 'success';
                        $data['info'] = $this->upload->data();
                        echo json_encode($data);
                }
 
 
复制代码


帮忙看看
发表于 2012-4-18 09:28:14 | 显示全部楼层
指尖的殤魂 发表于 2012-4-17 14:46
我的还是接收不了,

很简单 用Firebug -> 网络->XHR 可以看到请求

本版积分规则