尝试使用数据类型json以json格式获取值,但是当我将其添加到我的脚本中时,它显示错误,elemet]缺少我做错了什么?
$(document).ready(function(){
$(window).scroll(function(){
var lastID = $('.load-more').attr('lastID');
if ($(window).scrollTop() == $(document).height() - $(window).height() && lastID != 0){
$.ajax({
type:'POST',
url:'<?php echo base_url("user/get_all_post"); ?>',
data:"id="+lastID,
dataType:'json',
beforeSend:function(html){
$('.load-more').show();
},
success:function(html){
//alert(html);
var ParsedObject = JSON.stringify(html);
var json = $.parseJSON(ParsedObject);
//alert(json);
/*
var json =" [{'id':1,'name':'Test1'},{'id':2,'name':'Test2'}]";
var jsonArray = eval('(' + json + ')');
for (i in jsonArray)
{
alert(jsonArray[i]["name"]);
}
*/
// alert(json.id);
var jsonArray = eval('(' + json + ')');
$PostId=jsonArray[4]["id"];
// alert($PostId);
for(i in jsonArray)
{
$post_status=jsonArray[i]["status"];
$status_image=jsonArray[i]["status_image"];
$multimage=jsonArray[i]["multimage"];
//alert(Lastid);
//alert($post_status);
//alert($status_image);
//alert($multimage);
$('.load-more').attr('lastID',$PostId);
$('#result_table').append(jsonArray);
}
}
});
}
});
});
</script>
我想访问我的json数据,以便我可以显示它,但是当我在我的视图中访问时,所有变量都显示为undefined
答案 0 :(得分:0)
首先,您的user/get_all_post
需要返回json数据(并且还有application/json
的响应头
使用output
课程
(参考https://codeigniter.com/user_guide/libraries/output.html)
$this->output
->set_content_type('application/json')
->set_output(json_encode(array('foo' => 'bar')));
然后你可以在jquery中使用json属性来响应
success:function(response){
alert(response.foo)
}
答案 1 :(得分:0)
我想我找到了一个解决方案,我只是在我的代码中添加所有内容,我只需要访问我的json值,我只需要解析json值然后我就可以在for循环中访问数组了 希望它也有助于其他人
<script type="text/javascript">
$(document).ready(function(){
$(window).scroll(function(){
var lastID = $('.load-more').attr('lastID');
if ($(window).scrollTop() == $(document).height() - $(window).height() && lastID != 0){
jQuery.ajax({
type:'POST',
url:'<?php echo base_url("user/get_all_post"); ?>',
data: "id=" + lastID,
dataType: 'json',
beforeSend:function(html){
$('.load-more').show();
},
success:function(data){
var ParsedObject = JSON.stringify(data);
var json = $.parseJSON(ParsedObject);
$PostId=json[4]['id'];
for(i as json)
{
var post_status = json[i]['status'];
$status_image = json[i]['status_image'];
var multimage = json[i]['multimage'];
alert($status_image);
$("#status_data").append('<div style=" margin: 20px 50px 0px 40px; ">'+'<a>'+'<?php echo img($user_image); ?>' +'</a>'+'<a>'+ ' <?php echo $uname; ?>' +'</a>'+'<div>'+post_status+'</div>' +'</div>');
$("#status_data").append('<div style=" margin: 20px 50px 0px 40px; ">'+'<a>'+'<?php echo img($user_image); ?>' +'</a>'+'<a>'+ ' <?php echo $uname; ?>' +'</a>'+'<div>'+'<img src="'+<?php base_url('uploads/'); ?> status_image+'">'+'</div>' +'</div>');
}
$('.load-more').attr('lastID', $PostId);
}
});
}
});
});
</script>
这样就可以了,不需要eval或jsonArray。感谢大家的回复。