Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dynamiczna lista
Forum PHP.pl > Forum > Bazy danych > MySQL
kolorek1
Witajcie.
Bardzo proszę o pomoc. Na mojej stronie chcę zrobić coś takiego, że po wpisaniu załóżmy 3 znaków z emaila podpowiadało mi niżej użytkownika pobranego z bazy "x" z tabeli "db_users". Mógłby ktoś pomóc mi to zrobić?
viking
Przykładowo https://prophp.pl/advice/show/17/jak_przygo...dan_xhr_json%3F
kolorek1
No ok ale wgl nie rozumiem jak ma się to do tego co ja chcę zrobić
viking
Zamieniasz zapytanie z delete na select, w js submit na change. Jeśli dalej nie rozumiesz to pozostaje dalsze czytanie. Masz prawie gotowy skrypt więc wróć z konkrtnym pytaniem.
kolorek1
Nie wiem czy mnie dobrze zrozumiałeś. Chodzi mi o to że ktoś w polu tekstowy wpisuje załóżmy "kro" i jak w tabeli db_zwierzeta jest krowa to mu to wyświetli poniżej
viking
Doskonale zrozumiałem i masz gotowy przykład + napisałem o trzeba zmienić.
kolorek1
Ja to rozumiem tak..
  1. <?php
  2. header("Content-Type: application/json;charset=utf-8");
  3.  
  4. $userId = (int) $_POST['userid'];
  5. $action = $_POST['action'] questionmark.gif null;
  6.  
  7. if ($action === 'select') {
  8. try {
  9. $dbh = new PDO('mysql:dbname=test;tutaj wpisuje host bazy', 'user', 'pass', [
  10. PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
  11. ]
  12. );
  13. $dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
  14. $sql = "DELETE FROM users WHERE user_id = ?";
  15. $sth = $dbh->prepare($sql);
  16. $sth->execute([$tutaj zmieniam na nazwe komórki np db_users]);
  17. echo json_encode([
  18. 'message' => sprintf('Skasowano %d rekordów', $sth->rowCount())
  19. ]);
  20. } catch(PDOException $e) {
  21. http_response_code(500);
  22. echo json_encode([
  23. 'message' => 'Klasa PDO zwróciła wyjątek: ' . $e->getMessage()
  24. ]);
  25. }
  26. } else {
  27. http_response_code(500);
  28. echo json_encode([
  29. 'message' => 'Nieprawidłowa akcja'
  30. ]);
  31. }
  32.  


Następnie
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
  6. <script>
  7. $(function() {
  8. $('#userdelete').on('submit', function(event) {
  9. event.preventDefault();
  10. $.ajax({
  11. url: "user_ajax.php",
  12. method: "POST",
  13. data: $(this).serialize()
  14. })
  15. .done(function(data, textStatus, jqXHR) {
  16. $('#message').html(data.message);
  17. })
  18. .fail(function(jqXHR, textStatus, errorThrown) {
  19. $('#message').html(jqXHR.responseJSON.message);
  20. });
  21. });
  22. });
  23. </script>
  24. </head>
  25. <body>
  26. <div id="message"></div>
  27. <form action="POST" id="userdelete">
  28. <input type="text" name="nazwa komóki tabeli np db_users">
  29. <input type="hidden" name="action" value="select">
  30. <input type="change">
  31. </form>
  32. </body>
  33. </html>
viking
I po co to kopiujesz na forum? Z twoich słów wynika że nic nie umiesz więc czego oczekujesz? Że ktoś za ciebie napisze wszystko? To patrz dział zleceń. Jak masz konkretne pytania to je zadaj.
kolorek1
Nie chodzi o napisanie gotowego skryptu tylko podpowiedz robię źle, że to nie działa. Mądry jesteś bo to umiesz, sam też musiałeś się kiedyś tego nauczyć. Temat można zamknąć bo widzę, że na tym forum nie znajdę pomocy.
viking
To gdzie Twój poprawiony kod strony? Zastanów się jak mamy pomóc skoro nic od siebie nie dałeś.
kolorek1
Przeczytałeś dokładnie ten kod co wkleiłem ? Bo wydaje mi się, że nie
viking
A wiesz czym się różni komórka od tabela? Pokaż jak według ciebie wygląda zapytanie select.
nospor
@kolorek to co chcesz zrobic nazywa sie AUTOCOMPLETE
W necie masz pelno libow do tego. Osobiscie polecam ci
https://jqueryui.com/autocomplete/
Masz tam rozne przyklady uzycia, przejrzyj sobie, wybierz co ci najbardziej pasuje. Choc z opisu z pierwszego posta wydaje sie, ze najlepsze bedzie to:
https://jqueryui.com/autocomplete/#remote
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.