【问题标题】:codeigniter with ajax on success refresh the listing成功时使用 ajax 的 codeigniter 刷新列表
【发布时间】:2013-03-04 15:30:55
【问题描述】:

我使用带有 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 发布成功,列表应该在不刷新整个页面的情况下刷新。我想刷新特定列表部分并显示最后发布的统计信息而不刷新整个页面。

【问题讨论】:

    标签: ajax html codeigniter jquery


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      或者您可以配置您的控制器/模型以从数据库中查询最新更改,使用 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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-07
        • 2021-04-22
        • 2016-10-26
        • 2018-10-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多