Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][MySQL][PHP] Autocomplete połączony z bazą danych i wewnątrz-zmiennymi.
Forum PHP.pl > Forum > Przedszkole
d0m1n1k_
Witam,
utknąłem przy następującym problemie.
Baza danych zawiera tabelę składniki: skl_id, skl_name, skl_var
Przykładowe dane: 1, Sinusoida, sinus_alfa

Wykorzystuję autocomplete FCBKcomplete:

  1. <form action="submit.php" method="POST" accept-charset="utf-8">
  2. <select id="select3" name="select3">
  3. </select>
  4. <br/>
  5. <br/>
  6. <input type="submit" value="Send">
  7. </form>
  8. <script type="text/javascript">
  9. $(document).ready(function(){
  10. $("#select3").fcbkcomplete({
  11. json_url: "data.php",
  12. addontab: true,
  13. maxitems: 1,
  14. input_min_size: 0,
  15. height: 10,
  16. cache: true,
  17. newel: true,
  18. select_all_text: "select",
  19. });
  20. });
  21. </script>


plus plik data.php:

  1. [{"key": "01", "value": "hello world"},
  2. {"key": "02", "value": "movies"},
  3. {"key": "03", "value": "ski"},
  4. {"key": "04", "value": "snowbord"},
  5. {"key": "05", "value": "computer"},
  6. {"key": "06", "value": "apple"},
  7. {"key": "07", "value": "pc"},
  8. {"key": "08", "value": "ipod"}]


a chciałbym go przerobić na pobierany z bazy danych, połączony z dalszą wewnętrzną zmienną:

  1. $count = mysql_fetch_array(mysql_query("SELECT COUNT(*) AS ilosc FROM `skladniki`"));
  2. $pobierz = mysql_query("SELECT `skl_id`, `skl_name`, `skl_var` FROM `skladniki`");
  3. echo $conut . "<br />";
  4.  
  5. echo "[";
  6. $i = 1;
  7. while($p = mysql_fetch_array($pobierz)){
  8. echo "{\"key\": \"" . $p['skl_id'] . "\", \"value\": \"" . ${$p['skl_var']} . "\"}";
  9. if($i < $count['ilosc']){
  10. echo ", ";
  11. }
  12. $i++;
  13. }
  14. echo "]";


Gdzie popełniam błąd? Czy JSON_URL nie przetwarza skrytpu php?
z Javascript jestem całkowicie zielony, dlatego bardzo proszę o wskazówki i pomoc.

Z góry dziękuję.
kapslokk
  1. echo $conut . "<br />";

Przypadkiem to już Ci nie psuje JSON'a?

Poza tym, czemu nie użyjesz json_encode() tylko jakoś tak śmiesznie sobie tworzysz tego jsona?
d0m1n1k_
  1. echo $conut . "<br />";

Ta linijka to pomyłka.
Usunąłem ją i skrypt zadziałał... żałosny błąd.

Pomijając pobieranie danych z mysql i pętle do tego przygotowaną reszta jest gotowcem.
I tak jak już napisałem na końcu - jestem absolutnie zielonym w javascript, ale i w json'ie.
Comandeer
No to użyj json_encode i tyle. Wrzuć dane z bazy do tablicy i przepuść przez tę funkcję.

BTW polecam przerzucić się na PDO, gdzie całość tej pętli można skrócić do: json_encode($query->fetchAll()) wink.gif No i mysql w PHP 7 jest usunięty.
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.