Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z autocomplete
Forum PHP.pl > Forum > PHP
smok55453
Zrobiłem autocomplete tak jak było napisane tutaj.
Z tym, że tam napisana była tablica statyczna:
  1. <?php
  2. $q = $_GET['q'];
  3. if(!$q) return;
  4.  
  5. $dane = array('aparat','motor','rower','samochód','telefon','telewizor');
  6. $i = 0;
  7. foreach ($dane as $id => $wartosc) {
  8. if(preg_match('/^'.$q.'/', $wartosc)){
  9. echo $wartosc.PHP_EOL;
  10. $i++;
  11. }
  12. }
  13.  
  14. if(!$i) echo "urządzenie spoza listy\n";
  15.  
  16. ?>

a ja ją przerobiłem na dynamiczną i coś nie działa. To mój kod:
  1. <?php
  2. $q = $_GET['q'];
  3. if(!$q) return;
  4.  
  5. $my_res1 = mysql_query("SELECT nazwa FROM przepisy");
  6. $ii=0;
  7. while($row1 = mysql_fetch_array($my_res1, MYSQL_NUM))
  8. {
  9.  
  10. $tablica_wierszy1[] = $row1;
  11. $ii++;
  12.  
  13. }
  14. for($i=0;$i < $ii; $i++)
  15. {
  16. $tablica_nazw_test[$i] = $tablica_wierszy1[$i][0];
  17. }
  18. $dane = array($tablica_nazw_test);
  19. $i = 0;
  20. foreach ($tablica_nazw_test as $id => $wartosc) {
  21. if(preg_match('/^'.$q.'/', $wartosc)){
  22. echo $wartosc.PHP_EOL;
  23. $i++;
  24. }
  25. }
  26.  
  27. if(!$i) echo "urządzenie spoza listy\n";
  28. ?>

Kod który łączy się z bazą usunąłem ponieważ to dane prywatne.
nospor
Nie: $dane = array($tablica_nazw_test);
a: $dane = $tablica_nazw_test;

Ale to i tak nie ma znaczenia bo $dane nigdzie nie uzywasz...

Sprawdz co zawiera $tablica_nazw_test
var_dump($tablica_nazw_test);

A na przyszlosc pisz na czym polega "niedzialanie".... "Cos nie dziala" nic nam nie mowi o istocie problemu
smok55453
Niedziałanie polega na tym, że gdy coś wpiszę w pole formularza to wyświetla się tylko napis: urządzenie spoza listy.

jak to wpiszę to nic się nie wyświetla. Dla sprawdzenia podawałem co linijkę echo 'test'; w pliku z tym skryptem co podałem wyżej.
Tekst pokazuje się dopóki nie zejdę niżej tego if:
  1. if(!$q)
  2. {
  3.  
  4. return;
  5. }




edit.

usunąłem ten warunek dla sprawdzenia oraz zamiast napisu urządzenie z poza listy dałem
  1. print_r($tablica_nazw_test);
i wyświetliło się to: klik a powinna sama Babka_...
nospor
$my_res1 = mysql_query("SELECT nazwa FROM przepisy");
Daj w tym zapytaniu WHERE i pobieraj tylko te rekordy, ktore pasują do wpisanego wzoru. Nie ma sensu z bazy pobierac wszystkiego
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.