0

我使用带有 ajax 的 codeigniter 来发布表单。下面是我使用的 ajax 代码。代码使发布成功。

<script type="text/javascript">
$('#post_submit').click(function() {
  var form_data = {
    csrfsecurity: $("input[name=csrfsecurity]").val(),
    post_text: $('#post_text').val()    
  };

  $.ajax({
    url: "<?php echo site_url('/post_status'); ?>",
    type: 'POST',
    data: form_data,
    success: function(response){
      $(".home_user_feeds").html("markUpCreatedUsingResponseFromServer");
    }
  });
  return false;
});
</script>

但是我在同一页面上列出了状态帖子,所以我希望一旦 ajax 发布成功,列表应该在不刷新整个页面的情况下刷新。我想刷新特定列表部分并显示最后发布的统计信息而不刷新整个页面。

4

2 回答 2

1

好的,一旦帖子完成,您的服务器应该通过查询数据库表中的值来返回更新的列表值,并且在您的代码的以下部分中,您应该更新您的列表

success: function(response){
  $(".home_user_feeds").html("markUpCreatedUsingResponseFromServer");
  $("#div_list").html(response);
}

您需要查询数据库的原因是其他用户可能也在发布数据,因此您希望查看列表中的每个帖子。

于 2013-03-03T14:26:29.027 回答
0

或者您可以配置您的控制器/模型以查询数据库中的最新更改,使用 json_encode 进行包装:

   $result = $this->mymodel->getupdates();
   print json_encode(array('success' => TRUE, 'rows' => $result));

然后在您的脚本中,使用 jquery ajax 中的成功处理程序,遍历行以从响应中创建动态 html:

   var htm = '';
   for(r in response.rows){
      htm = htm + 'dynamic_html'; //make a construction here
   }

   $("#div_list").append(htm); //if you want to append only latest update
   $("#div_list").html(htm); //if you want to replace your current view
于 2013-03-04T07:30:55.923 回答