【问题标题】:Refresh list after save data using AJAX Codeigniter使用 AJAX Codeigniter 保存数据后刷新列表
【发布时间】:2017-04-07 14:18:00
【问题描述】:

您好,我想使用模态框 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>

这是我当前的输出

【问题讨论】:

  • 现在,数据已正确保存和显示。对吗?
  • 如果正确的话。然后您可以使用list_type_placement() 方法检索最后一个数据。和$("#placement").last().append(response);
  • 你能告诉我怎么做吗?我试了一下还是不行
  • 显示你上次尝试的list_type_placement() 方法和jquery
  • 我根据您的回答编辑了我的问题。对吗?

标签: php jquery ajax twitter-bootstrap codeigniter


【解决方案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:"&lt;?php echo base_url() ?&gt;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); 
    }); 
}

注意:在控制器中编写主动查询代码是不好的做法,我会更好地在您的模型中编写主动查询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-30
    • 2018-02-24
    相关资源
    最近更新 更多