我有一个动态表,我想通过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 ???
}
我希望你能帮助我。谢谢
首先,您不需要JSON.stringfy({‘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);
}