我知道这个问题太多了,但我找不到任何有关我正在做的事情的好教程。 我从数据库中获取数据并在html页面上使用foreach来显示字段。像这样。
<script type="text/javascript" src="<?php echo base_url();?>js/learnKO.js?<?php echo date('l jS \of F Y h:i:s A');?>" ></script>
<div class="table-responsive">
<table class="table table-striped table-bordered table-condensed">
<thead>
<tr>
<th class="text-center">1</th>
<th class="text-center">2</th>
<th class="text-center">3</th>
</tr>
</thead>
<tbody data-bind="foreach: alldata">
<tr>
<td class="text-center"><span data-bind="text: $data.net_amount "></span></td>
<td class="text-center"><span data-bind="text: $data.vat_amount"></span></td>
<td>
<button type="button" class="btn btn-default btn-xs" data-bind="click: $parent.editItem">Edit</button>
<button type="button" class="btn btn-default btn-xs" data-bind="click: $parent.acceptItem">Accept</button>
<button type="button" class="btn btn-default btn-xs" data-bind="click: $parent.cancelItem">Cancel</button>
</td>
</tr>
</tbody>
</table>
</div>
我的js文件包含一个简单的函数,可以获取这样的数据。
self.alldata = ko.observableArray();
self.viewAllInvoice = function () {
$.ajax({
type: 'POST',
url: BASEURL + 'index.php/moneyexchange/learn_Ko/' ,
contentType: 'application/json; charset=utf-8'
})
.done(function(invoices) {
self.alldata.removeAll();
$.each(invoices, function (index, invoice) {
self.alldata.push(invoice);
});
})
.fail(function(xhr, status, error) {
alert(status);
})
.always(function(data){
});
};
self.viewAllInvoice();
我正在使用phpcode igniter来获取数据。以下是我从控制器和模型中获得的信息。
public function learn_Ko(){
$this->load->model('invoice_page');
$result = $this->invoice_page->getAllInvoice();
$this->output->set_content_type('application/json');
$this->output->set_output(json_encode($result));
}
这是模型
public function getAllInvoice(){
$query ='SELECT * FROM invoice';
$query = $this->db->query($query);
$result = $query->result();
return $result;
}
我想要做的只是编辑表格和编辑的数据以存储在数据库中。因为我尝试了很多不同的教程但是无法做到,所以请指导我。我在这里提供了所有东西,所以我确信我没有遗漏任何东西。 这是表pic
答案 0 :(得分:0)
对于JavaScript CRUD应用程序,我在服务器中使用OData服务(我确定PHP中必须有一些实现,例如参见:How to create an Odata Service using PHP?)和精彩的{ {3}}图书馆。
Breeze.js处理所有CRUD内容,并以非常简单和强大的方式与OData服务进行通信。并且在淘汰赛中非常顺利:你只需要在微风之前加载konockout库,以便微风检测到它。如果这样做,breeze将根据从OData服务接收的数据自动为您生成可观察的属性。并允许验证,跟踪更改,批量发送更改以及更多内容。