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

[HELP] 请问各位大神。。。

[复制链接]
发表于 2015-10-23 16:29:09 | 显示全部楼层 |阅读模式
用ci接收页面用ajax传到控制器的数据后,怎样返回给ajax啊??拜托各位啦。。
发表于 2015-10-26 10:31:55 | 显示全部楼层
包芮芮 发表于 2015-10-23 19:57
请问使用视图的话,页面的ajax怎么接收啊??直接echo 和用视图输出有什么区别呢??谢谢
...

1. 使用 echo 和使用视图,对于浏览器接收 json 没有任何影响和区别。
2. 输出皆视图,好好理解这句话。

发表于 2015-10-23 17:26:23 | 显示全部楼层
数据转成json格式然后echo出来就好
 楼主| 发表于 2015-10-23 18:01:12 | 显示全部楼层
Michael锐生 发表于 2015-10-23 17:26
数据转成json格式然后echo出来就好

好的。。谢谢啦
发表于 2015-10-23 18:13:25 | 显示全部楼层

不建议直接用 echo,建议 JSON 也使用视图输出。

 楼主| 发表于 2015-10-23 19:57:21 | 显示全部楼层
Hex 发表于 2015-10-23 18:13
不建议直接用 echo,建议 JSON 也使用视图输出。

请问使用视图的话,页面的ajax怎么接收啊??直接echo 和用视图输出有什么区别呢??谢谢
发表于 2016-1-29 11:41:39 | 显示全部楼层
[折磨]我也遇到的相同的问题。不管是用echo输出json数据还是直接echo 出状态 ;view中都接收到了。但是还是不能根据返回的数据来判断。callback怎么接收返回ajax数据?
//--------------------控制器----------------------------------
                public function ajax_check(){       
                        //判断是否是ajax传值
//$_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest'
                if(($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest'){
                        error('对不起,您访问的页面不存在!');       
                }
                $username = $_POST['username_reg'];
                $this->load->model('login_model');
                $status = $this->login_model->check($username);
                if($status){
                        echo json_encode(0);
                }else{
                        echo json_encode(1);
                }
        }
}
//-------------------------ajax判断用户名是否存在------------------------------------
$.post(site+'/index/register/ajax_check',{username_reg : username_reg},function(status){
                                if(status){
                                        msg = "";
                                        span.html(msg).removeClass('error');
                                        verificat.username_reg = true;
                                }else{
                                        msg = '用户名已存在';
                                        span.html(msg).addClass('error');
                                        verificat.username_reg = false;
                                        return;
                                }
                        },'json');
                                msg = '';
                                span.html(msg).removeClass('error');
                                verificat.username_reg = true;
                });
以上是我写的代码。但是callback里面的判断语句并没有执行。如果数据格式改成text用alert()判断能获取传过来的值。但是json不行。我同事说是我这不支持json数据格式。。。
发表于 2016-1-29 12:32:19 | 显示全部楼层
ajax(url,data, function(result){}....);
result就是返回的数据,可以是带jason数据的视图
发表于 2016-1-29 14:11:37 | 显示全部楼层
本帖最后由 洗风 于 2016-1-29 14:14 编辑

我是这样解开传回的jason数据的:
$.getJSON(url, function(result) {
                                                                                                      
                                                  $.each(result, function(k, v) {
              
                                                                                             $.each(v,function(kk, vv) {
                                                                                                                                   if (kk=="id") var id=vv;                                                                                                                                  if (kk=="name") var name=vv;
                                                                                                                                  });                                                                                             });
                                                  });


本版积分规则