Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][JS]Wyszukiwarka na stronę - Jak zrobić?
Forum PHP.pl > Forum > Przedszkole
xSebaPL
Witam, chciałbym się zapytać jak zrobić wyszukiwarkę na stronę. Chodzi o to że wpisuję kolejne literki w wyszukiwarkę, a ona po prostu segreguje dane wychodzące z mysql. No i właśnie tego nie potrafię zrobić sad.gif W tej chwili mam zrobione tylko wyszukiwarkę(że pobiera frazy) no i jeszcze wyświetlanie danych z mysql.

A więc tak wygląda wyszukiwarka:
  1. <head><script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script></head>
  2. Wyszukaj:<br>
  3. <input id="wyszukiwanaFraza" type="text" value="">
  4. <div id="test"></div>
  5.  
  6. $("#wyszukiwanaFraza").keypress(function() {
  7. var data = document.getElementById('wyszukiwanaFraza').value;
  8. $("#test").text(data);
  9. });


a to jest wyjście z mysql i wyświetlenie danych:
  1. <?
  2. include("config.php");
  3. db_connect();
  4. $movies = mysql_query("SELECT * FROM movies ORDER BY id");
  5. while($option = mysql_fetch_assoc($movies)) {
  6. echo '<a href="../movies.php?v='.$option['ID'].'"><img id="titlesMain" src="../titlepages/'.$option['ID'].'.jpg" /></a>';
  7. }
  8. db_close()
  9. ?>


No i teraz właśnie chcę żeby dane wychodzące z mysql się segregowały, wiem że to if'em trzeba zrobić ale jaki ma być ten warunek. Mam nadzieje że wiecie o co mi chodzi sad.gif Czy ktoś może mi wskazać jak to zrobić?
Pls Ja być w potrzebie sad.gif haha.gif
freemp3
Tu znajdziesz odpowiedzi na wszystkie swoje pytania, albo przynajmniej na większość wink.gif
https://jqueryui.com/autocomplete
xSebaPL
Okey, spróbowałem to zrobić tak:
searchOptions.php:
  1. <head><script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
  2. <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script></head>
  3. Wyszukaj:<br>
  4. <input id="wyszukiwanaFraza" type="text" value="">
  5. <div id="test"></div>
  6.  
  7. var moviesList= new Array();
  8. $("#wyszukiwanaFraza").autocomplete({
  9. $.ajax({
  10. type: 'POST',
  11. url: "/mainpage.php",
  12. data: moviesList,
  13. contentType: "application/json; charset=utf-8",
  14. dataType: "json",
  15. success: function(result) {
  16. }
  17. });
  18. source: moviesList,
  19. change: function( event, ui ) {
  20. $("#test").text(ui.data.value);
  21. }
  22. });
  23.  


no i mainpage.php:
  1. <?
  2. include("config.php");
  3. db_connect();
  4. $movies = mysql_query("SELECT * FROM movies ORDER BY id");
  5. $moviesList = [];
  6. $mN = 0;
  7. while($option = mysql_fetch_assoc($movies)) {
  8. echo '<a href="../movies.php?v='.$option['ID'].'"><img id="titlesMain" src="../titlepages/'.$option['ID'].'.jpg" /></a>';
  9. $moviesList[$mN]=$option['NAME'];
  10. $mN=$mN+1;
  11. }
  12. header("Content-Type: application/json");
  13. //echo $moviesList;
  14. json_encode($moviesList);
  15. db_close()
  16. ?>


Wyszukiwarka nie działa, znaczy po wpisaniu frazy nic nie wyświetla. Czy zna się ktoś może na tym JSON i AJAX i wie jak to obsługiwać?
freemp3
Trochę pomieszałeś smile.gif
Opcja "source" powinna być funkcją, a nie tablicą tak jak w Twoim przykładzie. W tej funkcji natomiast powinno znajdować się żądanie Ajax, które pobierze podpowiedzi i przekaże dalej smile.gif
Przykład: https://jqueryui.com/autocomplete/#remote-jsonp
xSebaPL
Ok pozamieniałem ale wciąż nie działa:
  1. $("#wyszukiwanaFraza").autocomplete({
  2. source: function(request, response) {
  3. $.ajax({
  4. type: 'POST',
  5. url: "/mainpage.php",
  6. dataType: "json",
  7. success: function(data) {
  8. response(data);
  9. $("#test").text("Fuck yeah!");
  10. },
  11. error: function(obj,text,error) {
  12. $("#test").text(text + ": " + error);
  13. }
  14. });,
  15. },
  16. change: function( event, data ) {
  17. $("#test").text(data);
  18. }
  19. });


Jedyna różnica to taka że błąd się nie wyświetla, ale wyszukiwarka dalej nie wyszukuje...
freemp3
Sprawdziłeś co zwraca ajax? Wyświetl w konsoli to co dostajesz w zmiennej "data".
xSebaPL
Właściwie to założyłem nowy temat odnośnie tego ajaxa, bo z ajaxami ja mam straszny problem a w tym temacie nikt nie odpisywał. Podaje link do tamtego tematu
Temat: JavaScriptAJAXPHPPrzeslanie array przez ajax

tam wszystko opisałem co i jak wyświetla
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.