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 に答える