使用AJAX Codeigniter保存数据后刷新列表

时间:2016-11-23 14:10:15

标签: php jquery ajax twitter-bootstrap codeigniter

您好我想使用模式框Bootstrap使用AJAX Codeigniter将数据插入数据库,我可以将我的数据插入到我的表中,但我发现结果不是我想要的。当我插入数据后,我想在列表末尾显示我的新数据,保存后的操作是关闭模式然后添加我的列表(我的列表是复选框数据)但我的新列表是从我的表中检索整个数据。你能解决我的问题吗。谢谢

这是我的控制器

function list_type_placement(){
        $type_placement=$this->type->get_by('level',1);
        if ($type_placement<>0) {
            $row=0;
            foreach ($type_placement as $key => $value) {
                $row++;
                echo "
                    <div class='checkbox' id='rows".$row."'>
                        <input id=".$value->id_type." type='checkbox' name='id_type[]'' value=".$value->id_type.">
                        <label for=".$value->id_type.">
                            ".$value->type_name."
                        </label>
                     </div>
                ";
            }
        }
        exit;
    }

我的观点

<div id="placement">
</div>

这是我的ajax行动

<script type="text/javascript">
  $(document).ready(function(){
    list_placement();
  });
  function list_placement(){
    $.ajax({
      url:"<?php echo base_url() ?>product/list_type_placement",
      type:'GET',
    }).done(function(response){
      $("#placement").append(response);
    });
  }
  function save(){
    $('#btnSave').text('Saving...');
    $('#btnSave').attr('disabled',true);

    $.ajax({
      url : "<?php echo site_url('product/save_placement')?>",
      type: "POST",
      data: $('#form').serialize(),
      dataType: "JSON",
      success: function(data)
      {
        if(data.status)
        {
          $('#modal-form').modal('hide');
          list_placement();                                
        }        
      }
    }).done(function(response){
          $("#placement").last().append(response);
    });
  }
</script>

这是我当前的输出

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以添加新方法lists()方法来检索上一个单个数据。

在控制器中:

function lists(){
    $this->db->order_by('id_type', 'desc');
    $this->db->limit(1);
    $query = $this->db->get('type_table');  
    $value = $query->row();
    echo "<div class='checkbox' id='rows".$row."'>
            <input id=".$value->id_type." type='checkbox' name='id_type[]'' value=".$value->id_type.">
            <label for=".$value->id_type.">
                ".$value->type_name."
            </label>
         </div>";
}

现在,可以在脚本函数中更改list_placement()函数。

$("#placement").last().append(response);并使用lists更改网址,例如url:"<?php echo base_url() ?>product/lists",

在Jquery中:

function list_placements(){ 
    $.ajax({ 
        url:"<?php echo base_url() ?>product/lists", 
        type:'GET', 
    }).done(function(response){
        console.log(response); 
        $("#placement").last().append(response); 
    }); 
}

注意:在控制器中编写活动quqery代码的做法不好,我最好在模型中编写活动查询。