使用JQuery Ajax和Code Igniter进行多次删除

时间:2016-07-18 02:13:39

标签: javascript php jquery ajax codeigniter

我目前正在开发一个使用php jquery和bootstrap的程序,我想使用复选框删除多个数据。我搜索并发现必须使用AJAX将参数从视图传递到控制器。 Jquery工作查找并可以从复选框中获取值。但是当我使用Ajax时,按钮无效。没有什么变化。请帮我在代码中找到问题。谢谢

我的控制器

public function hapusbeberapa()
    {
        $this->model_security->getsecurity();
        $this->load->model('model_barang');
        $arr = $this->input->post('data');

        //$arrcode= json_encode($arr);
        foreach($arr as $id)
            {
                $query = $this->model_barang->getID($id);
                if($query->num_rows()>0)
                {
            $this->model_barang->getdelete($id);
            //$this->session->set_flashdata('info',"Data Berhasil Dihapus");
                } 
            }
    }

我的模特

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Model_barang extends CI_model {

    public function getdelete($key)
    {
        $this->db->where('IDBarang',$key);
        $this->db->delete('tBarang');

    }

    public function getID($key)
    {
        $this->db->where('IDBarang',$key);
        $query = $this->db->get('tbarang'); 
        return $query;
    }
}

我的观点

<script src="<?php echo base_url();?>http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>

<script type="text/javascript" src="<?php echo base_url();?>http://code.jquery.com/jquery.js"></script>

<script type="text/javascript">

    $(document).ready(function() {

        $("#btnhapus").click(function(){

            var favorite = [];

            $.each($("input[name='checkboxlist']:checked"), function(){            

                favorite.push($(this).val());

            });

                $.post("<?php echo site_url(barang/hapusbeberapa) ?>"+actMult, {data:favorite}););

        });

    });

</script>

</script>

2 个答案:

答案 0 :(得分:0)

尝试类似的东西:

var favorite = [];
$.each($("input[name='checkboxlist']:checked"), function(){            
   favorite.push($(this).val());
});
favorite = favorite.join(); 
$.post
...

在控制器

$arr = $this->input->post('data');
$arr = explode(',', $arr);

答案 1 :(得分:0)

将您的脚本用作:

<script type="text/javascript">

$(document).ready(function() {

    $("#btnhapus").click(function(){

        var favorite = [];

        $.each($("input[name=checkboxlist]:checked"), function(){            

            favorite.push($(this).val());

        });

            $.post("<?php echo site_url(/barang/hapusbeberapa) ?>", {data:favorite}, function(returnData){
            console.log(returnData);
      });

    });

});

</script>

它肯定会起作用, 结果与控制器功能中的echo相同,并检查console log检查结果,您也可以使用alert(returnData)代替console.log(returnData)进行检查

希望有所帮助