我正在尝试使用codeigniter在我的网站中实现AJAX调用方法,之所以我想使用AJAX,以便我可以从数据库中获取实时更新
单击按钮工作并显示所有JSON数据,但问题是当我尝试显示一个它无法识别它的特定数组时,它似乎在迭代每个单个字符。
另一个奇怪的事情是当调用警报时我可以看到html和head标签我想能够打印特定的数组,例如数组id“
我已经做的事情试图解决它
我已经提醒数据类型并发现它是一个字符串
我设法让ajax在常规PHP中工作,而不是codeigniter所以他们的数据库没有错误
我也尝试过使用jQuery.parseJSON,所以我可以强制它为json但是脚本没有运行
我使用了JSONlint并且显然是一个有效的JSON
任何帮助将不胜感激
Consolelog
<html>
<head>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAXpGbk1wkkaPiv_qkBevxAP9s4kk0oiiU&sensor=false"></script>
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
[
[
{
"id": "1",
"postcode": "NW6",
"imgurl": "hello.jpeg",
"from_user": "henny",
"created_at": "2013-03-18 23:03:00"
},
{
"id": "2",
"postcode": "NW2",
"imgurl": "test.jpeg",
"from_user": "belly",
"created_at": "2013-03-15 23:03:00"
}
]
]
控制器
public function insertJSON()
{
$this->load->model("values");
$queryresults = $this->values->getDb();
$arrays = array($queryresults);
echo json_encode($arrays);
}
查看
<script type='text/javascript' language='javascript'>
$('#getdata').click(function (data) {
$.ajax({
url: '<?php echo base_url().'index.php/welcome/insertJSON';?>',
type: 'POST',
cache: 'false',
datatype: 'json'
}).done(function (data) {
alert(data);
});
});
</script>
json_encode
[
[
{
"id": "1",
"postcode": "NW6",
"imgurl": "hello.jpeg",
"from_user": "henny",
"created_at": "2013-03-18 23:03:00"
},
{
"id": "2",
"postcode": "NW2",
"imgurl": "test.jpeg",
"from_user": "belly",
"created_at": "2013-03-15 23:03:00"
}
]
]
答案 0 :(得分:2)
您需要从控制器功能发回正确的响应头(application / json)。
尝试将控制器更改为以下内容:
public function insertJSON()
{
$this->load->model("values");
$queryresults = $this->values->getDb();
$arrays = array($queryresults);
$this->output->set_content_type('application/json')
->set_output(json_encode($arrays));
}