• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Angular kod umożliwiający sięgnięcia do tabel powiązanych

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
636 wizyt
pytanie zadane 21 lipca 2018 w JavaScript przez sauber94 Nowicjusz (140 p.)

Witam, posiadam bazę danych na phpMyAdmin. Korzystam obecnie z tego kodu zmodyfikowanego pod swoje tabele:
https://www.webslesson.info/2016/09/angularjs-tutorial-with-php-update-edit-mysql-table-data.html


Załóżmy, że mam tabele: ZADANIE, PRACOWNIK, MATERIAŁY, SPRZĘT. Muszę przypisać do danego zadania: pracownika oraz materiały jak i sprzęt. Czy ktoś wie jak coś takiego zrobić w Angular?

2 odpowiedzi

0 głosów
odpowiedź 21 lipca 2018 przez zgrybus Pasjonat (24,860 p.)
Pierwsza rada - usuń wersje 1 i przejdź na normalnego Angualar :)
1
komentarz 21 lipca 2018 przez sauber94 Nowicjusz (140 p.)
A co w tym jest nie tak?
1
komentarz 21 lipca 2018 przez Tomek Sochacki Ekspert (227,490 p.)
Na Angular1 nadal stoi wiele apek komercyjnych i prawda jest taka, że w wielu przypadkach trzeba je utrzymywac, bo klient nie zawsze zapłaci Ci za migrację do Angular 6 jeśli nie da mu to realnych korzyści... Chhyba, że masz szczęście do takich kasiastych klientów, którzy nie mają pomysłu co zrobić z nadmiarem gotówki :)

A tak na prawdę do czy praujesz w AngularJS, Angular, React, Vue itp. to de facto żadna różnica. Poznasz jeden framework i zalapiesz ideę pracy z modelem, kontrolerem i widokiem to poradzisz sobie w każdym innym, kwestia doczytania dokumentacji i zrobienia 1-2 projektów.
0 głosów
odpowiedź 21 lipca 2018 przez Tomek Sochacki Ekspert (227,490 p.)
Ale chwila, tak na prawdę to Angular w ogóle nie powinien nawet wiedzieć gdzie są zapisane dane w back-endzie i skąd się one biorą?

Zapisy do bazy najlepiej realizować bezpośrednio w back-endzie, który fajnie żeby pełnił rolę API z odpowiednimi endpointami. W Angular natomiast możesz sobie po prostu stworzyć formularz, którego dane wyślesz do back-endu i tam dokonasz zapisu do bazy.

Napisz z czym dokładniej masz problem i co dokładnie chcesz zrobić w Angular bo niezbyt rozumiem samo pytanie...
komentarz 22 lipca 2018 przez sauber94 Nowicjusz (140 p.)

Zrobiłem sobie już taki kod, który czyta mi z danej tabeli z określonego rekordu w moim przypadku imię oraz nazwisko klientów w bazie i jednego z nich mogę sobie wybrać. Mimo wszystko mam problem. Dodając poniższy kod do indexu głównego (ten co dałem wyżej) nieco mi się to wszystko rozwala, screen: https://zapodaj.net/images/75764aa7b1ac1.png

index.php

<!DOCTYPE html>  
 <html>  
      <head>  
           <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script>  
           <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />  
      </head>  
      <body>  
           <br /><br />  
           <div class="container" style="width:600px;">  
                <h3 align="center">Wybierz imie klienta</h3>  
                <br />  
                <div ng-app="myapp" ng-controller="usercontroller" ng-init="loadKlient()">  
                     <select name="klient" ng-model="klient" class="form-control" ng-change="loadState()">  
                          <option value="">Wybierz klienta</option>  
                          <option ng-repeat="klient in klients" >{{klient.imie}} {{klient.nazwisko}}</option>  
                     </select>  
                     <br />   
                </div>  
           </div>  
      </body>  
 </html>  
 <script>  
 var app = angular.module("myapp",[]);  
 app.controller("usercontroller", function($scope, $http){  
      $scope.loadKlient = function(){  
           $http.get("load_klient.php")  
           .success(function(data){  
                $scope.klients = data;  
           })  
      }  
 });  
 </script>  

load_klient.php

<?php  
 //load_klient.php  
 $connect = mysqli_connect("localhost", "root", "", "sampledb");  
 $output = array();  
 $query = "SELECT * FROM klient ORDER BY imie ASC";  
 $result = mysqli_query($connect, $query);  
 while($row = mysqli_fetch_array($result))  
 {  
      $output[] = $row;  
 }  
 echo json_encode($output);  
 ?>  

 

komentarz 22 lipca 2018 przez Tomek Sochacki Ekspert (227,490 p.)
komentarz 22 lipca 2018 przez sauber94 Nowicjusz (140 p.)

Jak wstawię ng-cloak to niby usunie mi te 'krzaki' lecz nie działa button do zatwierdzenia danych oraz znikają dane które tak naprawdę są w bazie.

Wydaje mi się, że coś jest nie tak z kodem poniżej tak jakby blokował dostęp do bazy danych :

<div ng-app="myapp" ng-controller="usercontroller" ng-init="loadKlient()">  
                     <select name="klient" ng-model="klient" class="form-control" ng-change="loadState()">  
                          <option value="">Wybierz klienta</option>  
                          <option ng-repeat="klient in klients" >{{klient.imie}} {{klient.nazwisko}}</option>  
                     </select>  
                     <br />   
                </div>  

 

komentarz 22 lipca 2018 przez Tomek Sochacki Ekspert (227,490 p.)
a próbowałeś w ogole próbować debugowac kod lub chociaż poprzez konsolę sprawdzać wszystkie dane?
komentarz 22 lipca 2018 przez sauber94 Nowicjusz (140 p.)
Debugowałem przez Visual Studio Code - 0 błędów.

Podobne pytania

0 głosów
1 odpowiedź 116 wizyt
0 głosów
3 odpowiedzi 658 wizyt
pytanie zadane 29 czerwca 2016 w JavaScript przez erx700 Gaduła (3,430 p.)

93,115 zapytań

142,097 odpowiedzi

321,672 komentarzy

62,453 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...