Разбор массива многомерный от ajax до контроллера в коде - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть таблица Dynami c, и я хочу отправить в контроллер по ajax. У меня есть код ajax вот так:

$(".save").click(function(e){
    var items = new Array();
    $("#list-item tr.item").each(function () {
        $this = $(this)
        var ref_item_id = $this.find("#ref_item_id").val();
        var ref_pic_id = $this.find("#ref_pic_id").val();
        var price= $this.find("#price").val();
        var qty= $this.find("#qty").val();
        items.push({ ref_item_id : ref_item_id, ref_pic_id : ref_pic_id, price: price, qty : qty});
    });

    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: '<?php echo base_url("transac/save")?>',
        dataType: "json",
        data: JSON.stringify({'items': items }),
        success: function (data) {              
            var obj = $.parseJSON(data);
            alert(obj.lenth);
        },
        error: function (result) { alert(result); }
    });
})

теперь, как получить данные в контроллере и сохранить в таблице базы данных. Мой контроллер такой:

public function penjualan_save(){
    $items = $this->input->post("items");
    // next code ???
}

Надеюсь, вы мне поможете. Спасибо

1 Ответ

0 голосов
/ 16 апреля 2020

во-первых, вам не нужно JSON .stringify ({'items': items}), просто используйте:

data: {'items': items },

и в вашем контроллере , просто создайте модель и передайте в нее свои данные, например:

public function penjualan_save(){
    $items = $this->input->post("items");
    $this->load->model('model_name');
    $this->model_name->insert($items);
}

, затем вам нужно определить функцию для вашей модели , например:

public function insert($data)
{
    // if you didn't call database library in autoload.php
    $this->load->database();
    $this->db->insert_batch('mytable', $data);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...