我的看法 -
$(document).ready(function(){
$(".varsity").change(function(){
var id=$(this).val();
$.ajax({
type: "POST",
url: "<?php echo base_url()?>/admin/get_varsity_faculty",
data:"varsity_id="+id,
dataType: 'json',
success: function(data)
{
alert(data);
}
});
});
});
我的控制器(管理员)
public function get_varsity_faculty()
{
//admin controller
$varsity_id=$this->input->post('varsity_id');
$faculties=$this->admin_varsity->get_faculty_information($varsity_id);
//print_r($faculties);
echo json_encode($faculties);
}
当print_r($ faculties)和我视图中的警报响应(删除dataType:'json')得到此输出时 -
Array
(
[0] => Array
(
[unit_id] => 1
[vid] => 3
[unit_name] => Faculty of Civil Engineering
[form_starting_date] => 2013-05-15
[form_end_date] => 2013-05-22
[admission_date] => 2013-05-22
[possible_result_date] => 2013-05-22
[class_start_date] => 2013-05-21
[is_active] => 1
)
[1] => Array
(
[unit_id] => 2
[vid] => 3
[unit_name] => Faculty of Electrical & Electronic Engineering
[form_starting_date] => 0000-00-00
[form_end_date] => 0000-00-00
[admission_date] => 0000-00-00
[possible_result_date] => 0000-00-00
[class_start_date] => 0000-00-00
[is_active] => 1
)
[2] => Array
(
[unit_id] => 12
[vid] => 3
[unit_name] => Civil Engg
[form_starting_date] => 2013-06-11
[form_end_date] => 2013-06-12
[admission_date] => 2013-06-18
[possible_result_date] => 2013-06-04
[class_start_date] => 2013-06-10
[is_active] => 1
)
)
我的模型非常好用。 但当我回应json_encode($ faculties);使用dataType:'json'在我的视图中我得到的响应就像[object] [object]。并且无法解析响应。我知道这不是一个棘手的问题。但我已经尝试了很多次来自己克服这个问题。一句话我的问题是如何在我的视图中获取json响应并从此数组中解析它。 感谢
答案 0 :(得分:2)
它显示[Object, Object]
,因为您编码的数组是一个数组数组,最终作为最终解析的json中的对象数组。
例如:
<?php
$array = array(
0 => array('id' => 1),
1 => array('id' => 2)
);
$json = json_encode($array);
以上将编码为:
[{"id" : 1}, {"id" : 2}]
当使用$.parseJSON
之类的内容进行解析时,最终将会显示为包含两个对象的数组,或者当我们将其记录到控制台时:
[Object, Object]
或[object Object],[object Object]
如果您使用alert
代替console.log
(您不应该这样做)。请记住alert
只显示一个字符串。如果您希望能够看到返回的对象的组成,则应始终使用console.log
您可以像在javascript数组查找中一样访问各个对象。如果上面是一个名为json_result的变量,那么你可以使用:
json_result[0] // this would return the first object of the array.
然后,您可以使用对象键来检索值:
json_result[0]['id'] // this will equal 1
答案 1 :(得分:0)
试试这个
<?php
public function get_varsity_faculty()
{
$varsity_id=$this->input->post('varsity_id');
$faculties=$this->admin_varsity->get_faculty_information($varsity_id);
$rows = array();
foreach($faculties->result() as $row)
{
$rows[] = $row;
}
print json_encode($rows);
}
?>