CRUD淘汰赛

时间:2016-02-02 10:28:47

标签: javascript codeigniter knockout.js

我知道这个问题太多了,但我找不到任何有关我正在做的事情的好教程。 我从数据库中获取数据并在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 enter image description here

1 个答案:

答案 0 :(得分:0)

对于JavaScript CRUD应用程序,我在服务器中使用OData服务(我确定PHP中必须有一些实现,例如参见:How to create an Odata Service using PHP?)和精彩的{ {3}}图书馆。

Breeze.js处理所有CRUD内容,并以非常简单和强大的方式与OData服务进行通信。并且在淘汰赛中非常顺利:你只需要在微风之前加载konockout库,以便微风检测到它。如果这样做,breeze将根据从OData服务接收的数据自动为您生成可观察的属性。并允许验证,跟踪更改,批量发送更改以及更多内容。