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

[已解决] json输出有问题

[复制链接]
发表于 2011-2-26 11:25:17 | 显示全部楼层 |阅读模式
各位大虾,小弟在用json获取数据,做二级联动时,遇到以下问题。
js如下:
<script type="text/javascript">
                        function get_task(pid,url){
                                $.getJSON(url + pid, function(json) {
                                var str ='<option value="" selected="selected">请选择</option>';
                                for(var i=0; i <json.length; i++){
                                        str+='<option value="' + json.id + '">' + json.catename + '</option>';
                                }
                                $("#cateid").html(str);
                                });
</script>

在firefox下调试,能看到响应,如下图: json.jpg

平常调用都成功,这次的响应,似乎多“<!-- }-->”。以前调用成功的,都没这个。

烦请大虾教教小弟,万分感谢!!!
发表于 2011-2-26 11:28:50 | 显示全部楼层
你把 CI 代码贴一下。
 楼主| 发表于 2011-2-26 11:47:28 | 显示全部楼层
调用json的视图部分代码如下:

<?php header("Content-type: text/html; charset=utf-8"); ?>

                     分  类:
                        <select name="task_category" id="task_category" onchange="get_task(this.value,'<?= site_url()?>youjun/get_task_byid/')">
                                <option value="0" selected="selected">请选择</option>
                                <?php foreach ($product_category as $row) :?>
                                <option value="<?=$row->id?>"><?=$row->catename?></option>
                                <?php endforeach ?>
                        </select >
                        <select name="cateid" id="cateid">
                                <option value="0" selected="selected">请选择</option>
                        </select>
                        <span id="cateidtip" class="red">*</span> <span>只能选择最终分类才能继续发布</span>  
                <script type="text/javascript" src="<?php echo base_url();?>js/jquery-1.4.3.min.js"></script>
                <script type="text/javascript">
                        function get_task(pid,url){
                                $.getJSON(url + pid, function(json) {
                                var str ='<option value="" selected="selected">请选择</option>';
                                for(var i=0; i <json.length; i++){
                                        str+='<option value="' + json[i].id + '">' + json[i].catename + '</option>';
                                }
                                $("#cateid").html(str);
                                });
                        }
                </script>

响应json的控制器是youjun,代码如下:
class Youjun extends Controller {

        function __construct(){
                parent::Controller();
                $this->load->helper('url');
                $this->load->library('json');
                $this->load->helper('html');
                $this->load->model('product_category_model');            
        }

        function get_task_byid($id){
                $data['task'] = $this->product_category_model->get_cate($id);
                echo $this->json->encode($data['task']);
        }
}

模型product_category_model的get_cate函数:
function get_cate($id)
    {
        $this->db->where('pid',$id);
        $query = $this->db->get('product_category');
        if ($query->num_rows() > 0)
        {
             return $query->result();
        }
        else {
            return false;
        }
    }
发表于 2011-2-26 12:16:31 | 显示全部楼层
你的注释肯定是你输出的,好好检查代码吧,你贴的代码没问题。
 楼主| 发表于 2011-2-26 16:16:43 | 显示全部楼层
嗯。终于找到问题了。
是我的youjun控制器的问题,多了注释代码。
代码编写不规范惹的祸。。。。

感谢hex.......

本版积分规则