Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][HTML][PHP]Wyświetlenie bazy i szukanie rekordu
romkli
post 2.01.2017, 22:09:17
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 2.01.2017

Ostrzeżenie: (0%)
-----


Witam wszystkich serdecznie. Na tym forum jestem nowy i potrzebuję pomocy w podpowiedzi jak temacie.
Może na początek opiszę założenia: Mam bazę ludzi, wyświetlam ich w tabeli, chciałbym szukać po imieniu i nazwisku (coś w rodzaju find person). W założeniu mam, by szykał nie po naciśnięciu klawisza szukaj, ale po wciśnięciu pierwszej i kolejnych liter, czyli R, wyświetla mi wszystkich (z ograniczenie iliści wyświetlanych rekordów do pięciu) na literę R,. Następnie po naciśnięciu 'o' (suma to 'Ro') wyświetla mi wszystkich zaczynających się na 'Ro' itd
Wiem, że muszę napisać to w JS, ale dopiero raczkuję w nim.
Proszę, podpowiedżcie mi, jak to się fachowo nazywa oraz jak to możliwe jakieś przykłady? W kolejnym wątku dam trochę kodu, jak uporządkuje jego, bo jak narazie jest galimatias.
Go to the top of the page
+Quote Post
arturpiotrowski
post 2.01.2017, 22:17:27
Post #2





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 6.12.2016

Ostrzeżenie: (0%)
-----


https://jqueryui.com/autocomplete/ ?

Ten post edytował arturpiotrowski 2.01.2017, 22:18:44
Go to the top of the page
+Quote Post
romkli
post 2.01.2017, 22:23:09
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 2.01.2017

Ostrzeżenie: (0%)
-----


Podstrona do szukania po imieniu i nazwisku:
search.php:
  1. <!DOCTYPE html>
  2. <html lang="pl">
  3.  
  4. <meta charset="utf-8" />
  5.  
  6. body{
  7. background-color: #222222;
  8. font-size: 24px;
  9. color: white;
  10. }
  11. </style>
  12. <script type="text/javascript">
  13. function read_keyboard_firstname()
  14. {
  15. var firstname = document.getElementById("first_name").value;
  16. document.getElementById("firstn").innerHTML=firstname;
  17. }
  18.  
  19. function read_keyboard_lastname()
  20. {
  21. var lastname = document.getElementById("last_name").value;
  22. document.getElementById("lastn").innerHTML=lastname;
  23. }
  24. </script>
  25. </head>
  26.  
  27. <?php
  28. session_start();
  29. require_once "include/function.php";
  30. require_once "include/function_input.php";
  31. require_once "include/function_people.php";
  32.  
  33. select_people( $first_name, $last_name );
  34. ?>
  35. </body>
  36. </html>


Plik z funkcją do wyświetlania rekordów w tabeli wygląda tak:
  1. <?php
  2. function select_people( $first_name, $last_name ){
  3. require_once "connect.php";
  4. $polaczenie = new mysqli($host, $db_user, $db_password, $db_name);
  5. if ($polaczenie->connect_errno != 0) {
  6. throw new Exception(mysqli_connect_errno());
  7. } else {
  8. $rezultat = $polaczenie->query("SELECT * FROM people WHERE first_name LIKE '$first_name%' AND last_name LIKE '$last_name%' LIMIT 5");
  9. $ile = mysqli_num_rows($rezultat);
  10. echo 'Znaleziono: '.$ile.' rekordów</br>';
  11. echo '<table align="center" border="1">';
  12. echo '<tr>';
  13. echo '<th>First name</th>';
  14. echo '<th>Last name</th>';
  15. echo '<th>Option</th>';
  16. echo '</tr>';
  17. echo '<tr>';
  18. echo '<th>'?><input type="text" id="first_name" name="first_name" <?php if (isset($first_name)){ echo 'value = "'.$first_name.'"'; } ?> id="first_name" onkeypress = "read_keyboard_firstname()";/><?php echo '</th>';
  19. echo '<th>'?><input type="text" id="last_name" name="last_name" <?php if (isset($last_name)){ echo 'value = "'.$last_name.'"'; } ?> id="last_name" onkeypress = "read_keyboard_lastname();"/><?php echo '</th>';
  20. echo '<th><a href="kokpit.php?id_people='. $id_people .'">Dodaj</a></th>';
  21. echo '</tr>';
  22. '<tr>';
  23. echo '<th><div id="firstn"></div></th>';
  24. echo '<th><div id="lastn"></div></th>';
  25. echo '<th></th>';
  26. echo '</tr>';
  27. for ($i = 1; $i <= $ile; $i++) {
  28. $row = mysqli_fetch_assoc($rezultat);
  29. $id_people = $row['id_people'];
  30. $first_name = $row['first_name'];
  31. $last_name = $row['last_name'];
  32. echo '<tr>';
  33. echo '<td>' . $first_name . '</td>';
  34. echo '<td>' . $last_name . '</td>';
  35. echo '<td></td>';
  36. echo '</tr>';
  37. }
  38. echo '</table>';
  39. $polaczenie->close();
  40. }
  41. }
  42. ?>


Wada mojej strony jest to, że z opóźnieniem jednej litery wyświetla mi literę, czyli po wciśnięciu 'R' nic nie wyświetla, dopiero po wciśnięciu 'o' wyświetla mi pierwszą literę 'R itd. W tym kodzie jeszcze nie mam napisanego jak przerobić wyświetlane litery by mogły być użyte do szukania jeszcze nie szuka.
Go to the top of the page
+Quote Post
Kishin
post 3.01.2017, 09:22:06
Post #4





Grupa: Zarejestrowani
Postów: 148
Pomógł: 17
Dołączył: 20.12.2011

Ostrzeżenie: (0%)
-----


zamień onkeypress na onKeyUp.
Go to the top of the page
+Quote Post
romkli
post 5.01.2017, 01:17:05
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 2.01.2017

Ostrzeżenie: (0%)
-----


Cytat(Kishin @ 3.01.2017, 10:22:06 ) *
zamień onkeypress na onKeyUp.

Dzieki, pomogło. Nie ma teraz opóźnienia.

Ten post edytował romkli 5.01.2017, 01:17:52
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 03:37