首页 > 解决方案 > 使用Angular从复选框中的数据库中获取数据

问题描述

我正在尝试从数据库(MariaDB)中获取数据,如果存在,则必须选中复选框。例如,我会给你我的应用程序的截图: 这里我输入一些数据并将其发送到(通过提交按钮)数据库

在数据库中,我有两个表。首先是“原因”。reasons在“名称”列的“”表中,我保存了输入框中的数据。

    **table "reasons"**
    id   |   name
    -------------
    1    |   reason1
    4    |   reason2
    5    |   reason3
    6    |   reason4
    7    |   reason 5
    ..   |   ......

第二个表是“reason_to_transaction”。这里“ reason_id”是对“ id”表“ reasons”的引用,即每个“原因名称”都有一个“ transaction_type”(可以多个,例如,id=4 from“ reasons”表有两个" transaction_type"-卖,买。

    **table "reason_to_transaction"*
 reason_id |   transaction_type
    ----------------
      1    |   sell
      4    |   sell
      4    |   buy
      5    |   sell
      5    |   buy
      5    |   pko
      6    |   sell
      7    |   sell
       ..  |   ......

当我打开菜单“原因”(保加利亚语:“основание”)时,我得到了这个视图: 菜单原因 当我点击其中一些名称时,我得到了这个视图(编辑模式): 编辑模式

在输入框中,我得到了我单击的 activeItem.id。在此输入框下方有我想要检查的复选框。这是我的问题。我不知道如何从数据库中的这两个表中获取数据并选中需要的复选框。我有这个代码:

这是我的控制器,我在其中创建了一组复选框:

app.controller("ReasonCtrl", function($rootScope, $scope){
    $scope.items = [];
    $scope.editMode = false;
    $scope.activeItem = false;
    $scope.albums = [{
        id: 1,
        name: 'sell'
      },
      {
        id: 2,
        name: 'buy'
      },
      {
        id: 3,
        name: 'pko'
      },
      {
        id:4,
        name: 'rko'
      }
      ];

使用这个函数,我得到了来自 activeItem 的数据:

$scope.editItem = function(item){
        $scope.editMode = true;
        $scope.activeItem = angular.copy(item);
        $('.editMode1').show();
        $('.addMode1').hide();
        $('.myBox').hide();
        };

    $scope.createItem = function(item){
        $scope.editItem({});
    };

    $scope.saveItem = function(){
        console.log($scope.activeItem);
        //delete $scope.activeItem.hash_method
        var objectToSave = {

            name: $scope.activeItem.name,
            id: $scope.activeItem.id
        };

        if($scope.activeItem.id){
            defaultAdapter.query('UPDATE reasons SET name = :name WHERE id =:id ',
              { replacements: objectToSave, type: Sequelize.QueryTypes.UPDATE }
            ).then(defaultAdapter.query('SELECT rt.transaction_type,rt.reasons_id FROM reason_to_transaction rt INNER JOIN ',{type: Sequelize.QueryTypes.UPDATE}))
            .then(projects => {
              console.log(projects);
              $scope.editMode = false;
                $scope.activeItem = false;
                $scope.refresh();
            });
        } else {
            defaultAdapter.query('INSERT INTO reasons SET name = :name',
              { replacements: objectToSave, type: Sequelize.QueryTypes.UPDATE }
            ).then(projects => {
              console.log(projects);
              $scope.editMode = false;
                $scope.activeItem = false;
                $scope.refresh();
            });

        }

    };

我还在学习编程,我不知道如何获取这些数据并检查这些复选框......有人可以帮我吗?我正在使用 Angular(续集方法)和 MariaDB 谢谢!

标签: javascriptmysqlangular

解决方案


推荐阅读