我正在尝试使用codeigniter在我的网站中实现AJAX调用方法,之所以我想使用AJAX,以便我可以从数据库中获取实时更新
单击按钮工作并显示所有JSON数据,但问题是当我尝试显示一个它无法识别的特定数组时,它似乎在迭代每个单个字符。
另一个奇怪的事情是当调用警报时我可以看到html和head标签 我希望能够打印特定的数组,例如数组ID“
我已经做的事情试图解决它
我已经提醒数据类型并发现它是一个字符串
我设法让ajax在常规PHP中工作而不是 codeigniter所以他们的数据库没有错误
我也试过使用jQuery.parseJSON,所以我可以强迫它 json然后脚本没有运行
我使用了JSONlint并且显然是一个有效的JSON
任何帮助将不胜感激
控制器
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 :(得分:1)
$data[] = $arr; // <--- This $arr doesn't exist.
echo json_encode($data);
您正在编码一个空白数组。你也没有正确地将你的阵列发送到视图,你不应该只是回应它。
答案 1 :(得分:1)
@Ben是对的,$arr
来自哪里?
public function insert()
{
$this->load->model("values");
$queryresults = $this->values->Query();
$array = array();
foreach($queryresults as $row)
{
$array[] = $row->postcode;
}
echo json_encode($array);
exit;
// Just echo it out, no need to load view!
// $this->load->view('answer', $data);
}
答案 2 :(得分:1)
缺少的变量$ arr应该是循环之前声明的$数组变量。这样做:
public function insert()
{
$this->load->model("values");
$queryresults = $this->values->Query();
$array = array();
foreach($queryresults as $row)
{
$array[] = $row->postcode;
}
$data = array();
$data[] = $array; // <--- The fix!
echo json_encode($data);
$this->load->view('answer', $data);
}
在进行实际检查之前,请考虑仔细检查您的代码。