Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] jquery pobieranie danych z pliku
Forum PHP.pl > Forum > Przedszkole
tenloginjestzajety
Witam męczę się od dłuższego czasu z auto uzupełnieniem pola szukaj. Wszystko działa ok jeżeli podpowiedzi znajdują się w tym samym pliku co kod, jeśli zastosuje ścieżkę do pliku to po wpisaniu dowolnego znaku w input szukaj wyświetla wszystkie podpowiedzi.


plik z podpowiedziami:
  1. $conn = new mysqli($servername, $username, $password, $dbname);
  2. if ($conn->connect_error) {
  3. die("Connection failed: " . $conn->connect_error);}
  4. mysqli_set_charset($conn,"utf8");
  5. ?>
  6. <ul id="country-list">
  7. <?php
  8. $sql = "SELECT DISTINCT `tag` FROM `rewievs` WHERE `ver` = '1' AND `tag` != '' ORDER BY `id` DESC LIMIT 100";
  9. $result = $conn->query($sql);
  10. while($row = $result->fetch_assoc()){
  11. ?>
  12. <li onClick="selectCountry('<?php echo $row['tag']; ?>');"><?php echo $row['tag']; ?></li>
  13. <?php } ?>
  14. </ul>



plik index
  1. <html>
  2. <head>
  3. <TITLE>jQuery AJAX Autocomplete - Country Example</TITLE>
  4. <head>
  5. <style>
  6. body{width:610px;}
  7. .frmSearch {border: 1px solid #a8d4b1;background-color: #c6f7d0;margin: 2px 0px;padding:40px;border-radius:4px;}
  8. #country-list{float:left;list-style:none;margin-top:-3px;padding:0;width:190px;position: absolute;}
  9. #country-list li{padding: 10px; background: #f0f0f0; border-bottom: #bbb9b9 1px solid;}
  10. #country-list li:hover{background:#ece3d2;cursor: pointer;}
  11. #search-box{padding: 10px;border: #a8d4b1 1px solid;border-radius:4px;}
  12. </style>
  13. <script src="https://code.jquery.com/jquery-2.1.1.min.js" type="text/javascript"></script>
  14. <script>
  15. $(document).ready(function(){
  16. $("#search-box").keyup(function(){
  17. $.ajax({
  18. type: "POST",
  19. url: "readCountry.php",
  20. data:'keyword='+$(this).val(),
  21. beforeSend: function(){
  22. $("#search-box").css("background","#FFF url(LoaderIcon.gif) no-repeat 165px");
  23. },
  24. success: function(data){
  25. $("#suggesstion-box").show();
  26. $("#suggesstion-box").html(data);
  27. $("#search-box").css("background","#FFF");
  28. }
  29. });
  30. });
  31. });
  32.  
  33. function selectCountry(val) {
  34. $("#search-box").val(val);
  35. $("#suggesstion-box").hide();
  36. }
  37. </script>
  38. </head>
  39. <body>
  40. <div class="frmSearch">
  41. <input type="text" id="search-box" placeholder="Country Name" />
  42. <div id="suggesstion-box"></div>
  43. </div>
  44. </body>
  45. </html>


Stosowałem różne rozwiązania, w tym z oficjalnej strony jquery i zawsze jest to samo..

DEMO http://phppot.com/demo/jquery-ajax-autocom...ountry-example/
działa prawidłowo, nie mogę sprawdzić zawartości pliku z podpowiedziami: readCountry.php, a u mnie można. Może to jest przyczyną?
viking
Nie widzę żebyś gdziekolwiek w kodzie wykorzystywał keyword z JS. Chyba że chodzi o to, że PHP nawet nie parsuje pliku readCountry.php
tenloginjestzajety
Problem polega na tym, że pokazuje wszystkie podpowiedzi, które są w pliku: readCountry.php, a nie stosownie do wpisanych znaków w polu szukaj. Tego problemu nie ma jeżeli podpowiedzi są w zmiennej w tym samy pliku co skrypt:

  1. <script src="https://code.jquery.com/jquery-2.1.1.min.js" type="text/javascript"></script>
  2. <script>
  3. $(document).ready(function(){
  4. $("#search-box").keyup(function(){
  5. $.ajax({
  6. type: "POST",
  7. url: "readCountry.php",
  8. data:$(this).val(),
  9. beforeSend: function(){
  10. $("#search-box").css("background","#FFF url(LoaderIcon.gif) no-repeat 165px");
  11. },
  12. success: function(data){
  13. $("#suggesstion-box").show();
  14. $("#suggesstion-box").html(data);
  15. $("#search-box").css("background","#FFF");
  16. }
  17. });
  18. });
  19. });
  20.  
  21. function selectCountry(val) {
  22. $("#search-box").val(val);
  23. $("#suggesstion-box").hide();
  24. }
  25. </script>
  26. <div class="frmSearch">
  27. <input type="text" id="search-box" placeholder="Country Name" />
  28. <div id="suggesstion-box"></div>
  29. </div>



Podobnie jest w tym kodzie:
https://jqueryui.com/autocomplete/ jak zastosuje pobieranie podpowiedzi z pliku to wyświetla wszystkie, a jak podpowiedzi są w zmiennej to jest ok. Nie mogę znaleźć przyczyny, męczę się już kolejny dzieńsmile.gif

PS. w skrypcie pokazanym na stronie też są podpowiedzi w pliku i działa na blogu prawidłowo..
http://phppot.com/demo/jquery-ajax-autocom...ountry-example/
viking
Nie masz nigdzie w zapytaniu warunku który by uwzględnił poszukiwane słowo więc dlaczego miało by być inaczej?
tenloginjestzajety
użyłem kodu z tego bloga, a tam nic więcej nie ma i działa wszystko prawidłowo. Nie wiem jak zrobić taki warunek.

http://phppot.com/jquery/jquery-ajax-autoc...ountry-example/
nospor
Cytat
użyłem kodu z tego bloga, a tam nic więcej nie ma i działa wszystko prawidłowo.

Tja... nic nie ma.... oczywiscie... to tez, pewnie nic? :
$query ="SELECT * FROM country WHERE country_name like '" . $_POST["keyword"] . "%' ORDER BY country_name LIMIT 0,6";

Jak wol koles ogranicza wyniki do tego co wpisales w polu. Ty zas w swoim kodzie pobierasz wszystko z bazy i udajesz... mimo, ze ci viking ciagle na to zwraca uwage
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.