【问题标题】:Insert multiple records in single checkbox in codeigniter?在codeigniter的单个复选框中插入多条记录?
【发布时间】:2018-12-05 12:41:49
【问题描述】:

我有两个不同的表,第一个是 draft_table,第二个是 fix_table,每个表都有相同的字段(产品和价格)

我想从draft_table制作数据,可以用checkbox保存到fix_table,所以只有选中的数据会保存到fix_table。

我有这样的代码:

AJAX

<script>
$(function(){
    $("a.paid").click(function(){
    if(confirm("Are you sure want save this?"))
    {
        id_array=new Array()
        i=0;
        $("input.chk:checked").each(function(){
            id_array[i]=$(this).val();
            i++;
        })

        $.ajax({
            url:'<?php echo base_url(); ?>fix_data/set',
            data:"kode="+id_array,
            type:"POST",
            success:function(respon)
            {
                if(respon==1)
                {
                    window.parent.location.reload(true);
                }
            }
        })
    }
        return false;
    })
})
</script>

观看次数:

<?php
    foreach($data_get->result_array() as $dp)
    {
?>      
    <tr><td><input type="checkbox" name="chk[]" class="chk" value="<?php echo $dp['id_draft']; ?>" /></td>
    <td><?php echo $dp['product']; ?></td>
    <td><?php echo $dp['price']; ?></td>
    </td></tr>
<?php
    }
?> 

控制器:

public function set_stts()
{
    if($this->session->userdata('logged_in')!="")
    {
        $id_get = $this->input->post('kode');
        $dt = $this->db->get_where("tbl_draft",$id_get)->row();
        $product = $dt->product;
        $price = $dt->price;
        if ($this->input->post('kode')) {   
            $query = $this->db->query("INSERT INTO tbl_fix (product,price) VALUES (".$product.",".$price.")");
        }

        if($query){
            echo 1;
        }
        else{
            echo 0;
        }
    }
    else
    {
        header('location:'.base_url().'dashboard_item');
    }
}

我在草稿表单中单击提交后,没有任何反应,有没有人可以帮助我处理这个案例?

谢谢

【问题讨论】:

  • 旁注:你永远不会在循环中增加$no2
  • 我已经删除了,它只是为了另一个功能,与代码无关..
  • ajax 和控制器方法名称存在 url 不匹配。当控制器具有 set_stts 方法并且 $id_get 变量是数组时,您调用 set 方法

标签: javascript php ajax codeigniter


【解决方案1】:

也许你可以像这样改变你的控制器:

public function set()
    {
        if($this->session->userdata('logged_in')!="")
        {
            $id_get = $this->input->post('kode');
            $quer = $this->db->query("select * from tbl_draft WHERE id IN (".$id_get.")");
            if ($this->input->post('kode')) {   
                foreach($quer->result_array() as $dp)
                {
                    $a = $dp['product'];
                    $b = $dp['price'];
                    $query = $this->db->query("INSERT INTO tbl_fix (product,price) VALUES 
                    ('".$a."','".$b."')");
                }
            }

            if($query){
                echo 1;
            }
            else{
                echo 0;
            }
        }
        else
        {
            header('location:'.base_url().'dashboard_item');
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-06
    • 2015-02-16
    • 2018-03-01
    • 1970-01-01
    • 2013-02-03
    • 1970-01-01
    相关资源
    最近更新 更多