json输出有问题
各位大虾,小弟在用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下调试,能看到响应,如下图:
平常调用都成功,这次的响应,似乎多“<!-- }-->”。以前调用成功的,都没这个。
烦请大虾教教小弟,万分感谢!!! 你把 CI 代码贴一下。 调用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.id + '">' + json.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;
}
} 你的注释肯定是你输出的,好好检查代码吧,你贴的代码没问题。 嗯。终于找到问题了。
是我的youjun控制器的问题,多了注释代码。
代码编写不规范惹的祸。。。。
感谢hex.......
页:
[1]