huaxz1986 发表于 2012-2-21 17:10:52

原创!!CI+jQuery实现Ajax

要点:
1.在控制器中,对应的method最后输出采用:
echo $this->load->view(视图,数据,true);
2.在js脚本中,对应的post语句:
$.post( $(this).attr("href"), function(data){$(选择器).html(data);});
第一个,是利用view函数的true参数,将输出存到字符串中,而不是直接输出到浏览器。
第二个,由于CI的url的格式分段,因此传统的查询字符串不方便使用,这里直接用jQ对象的.attr()函数取得原链接,而不是组建查询字符串。

lnxa 发表于 2012-2-22 17:09:02

本帖最后由 lnxa 于 2012-2-22 17:10 编辑

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



controller

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

}

html jquery

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


zhengfeity 发表于 2012-2-23 13:37:25

顶一下!

指尖的殤魂 发表于 2012-4-17 14:46:04

本帖最后由 指尖的殤魂 于 2012-4-17 14:47 编辑

lnxa 发表于 2012-2-22 17:09 static/image/common/back.gif
你這個沒有狀態返回
我比較喜歡用json輸出結果


我的还是接收不了,

$(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);//失败信息
            }
      }
      
});



                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);
                }



帮忙看看

lnxa 发表于 2012-4-18 09:28:14

指尖的殤魂 发表于 2012-4-17 14:46 static/image/common/back.gif
我的还是接收不了,




很简单 用Firebug -> 网络->XHR 可以看到请求
页: [1]
查看完整版本: 原创!!CI+jQuery实现Ajax