【问题标题】:Codeigniter Post data using AngularJS - save in databaseCodeigniter 使用 AngularJS 发布数据 - 保存在数据库中
【发布时间】:2023-03-18 20:57:01
【问题描述】:

我正在使用 Codeigniter 和 AngularJS。

有人可以帮助我吗? 我想将 $scope.ListTabel 保存到数据库中。 “FOR”可以传入codeigniter控制器 - 在服务器上而不是在javascript中执行? 非常感谢!

$scope.ListaTabel = [];

$scope.adauga_in_tabel = function () {
    var camp = {};
    camp.tbl_date = new Date();
    camp.tbl_consumator = ServGlob.data.consumator;
    camp.tbl_produs = ServGlob.data.produs;
    camp.tbl_cantitate = ServGlob.data.cantitate;
    camp.tbl_pret = ServGlob.data.pret;
    $scope.ListaTabel.push(camp);
}

$scope.salveaza = function(){
  for(var i = 0; i < $scope.ListaTabel.length; i++){
      var item = $scope.ListaTabel[i];
      $scope.items = {date: item.tbl_date, consumator: item.tbl_consumator, produs: item.tbl_produs, pret: item.tbl_pret};
      $http.post('<?php echo base_url()."consum/add_consum";?>', $scope.items);
  }
  //$scope.ListaTabel = null;
  //$scope.items = null;
}


Codeigniter Controller

public function add_consum()
{
    $request= json_decode(file_get_contents('php://input'), TRUE);
    $data=$this->Consum_model->insert_consum($request);
    //$this->session->set_flashdata('message', 'Datele au fost salvate cu succes...');
}

Codeigniter Model

public function insert_consum($request)
 {
    //$val = array(
    //     'date' => $request['date'],
    //       'consumator' => $request['consumator'],
    //       'produs' => $request['produs'],
    //       'pret' => $request['pret']
    // );
   $insert=$this->db->insert('consum',$request);
   return $insert;
 }

【问题讨论】:

    标签: json angularjs codeigniter controller


    【解决方案1】:

    我认为最好的解决方案是将所有数据存储在一个数组中,然后将其发送到服务器

    类似下面的东西应该可以工作

    你的 JS 控制器函数

    $scope.salveaza = function()
    {
    
        let arrItems = [];
        for(var i = 0; i < $scope.ListaTabel.length; i++)
        {
            var item = $scope.ListaTabel[i];
            let itemToPost = {date: item.tbl_date, consumator: item.tbl_consumator, produs: item.tbl_produs, pret: item.tbl_pret};
    
            arrItems.push(itemToPost);
        }
        $http.post('<?php echo base_url()."consum/add_consum";?>', arrItems).then(function(result){
            //do whatever you want
        });
    }
    

    和你的控制器功能

    public function add_consum()
    {
        $request= json_decode(file_get_contents('php://input'));
    
        foreach($request as $arrItem)
        {
            $this->Consum_model->insert_consum($arrItem);
        }
        //$this->session->set_flashdata('message', 'Datele au fost salvate cu succes...');
    }
    

    【讨论】:

    • 谢谢。我试过了。我理解这个想法,但我无法让它发挥作用。不知道是发给控制器还是接收控制器
    • 它有点难用 can't get it to work 检查你的请求数组并用输出编辑你的问题,或者你有一个 javascript 错误?
    • 它可以完美地与控制器的细微变化 foreach($request as $key=>$value) { $this->Consum_model->insert_consum($value);非常感谢!
    猜你喜欢
    • 2017-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-22
    • 1970-01-01
    • 2014-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多