Я пытаюсь получить данные из базы данных (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 из таблицы "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 (метод sequelize) и MariaDB
Спасибо!