Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]polaczenie Autocomplete z baza
Forum PHP.pl > Forum > Przedszkole
gagatek
witam,
mam problem bo nie mogę za chiny połączyć sobie jquery atocomplete z baza. Jak wpisze na sztywno jakieś nazwy w index.php to wyszukuje eleganco (tak jak w tym przykladzie: http://docs.jquery.com/Plugins/Autocomplete#source), ale nie mogę połączyć tego z bazą... Cały dzień się męczę i nic z tego...
Problem wygląda tak że jak wpisuje cokolwiek do pola to pojawiają mi się jako podpowiedz 2 rzeczy:
pierwsza-Notice: Undefined index: term in C:\xampp\htdocs\aa\search.php on line 3
druga-[]
Nie mam pojęcia co jest nie tak, bardzo proszę Was o pomoc...
poniżej wrzucam kody

index.php:
  1. <html>
  2. <head>
  3. <script src="http://code.jquery.com/jquery-latest.js"></script>
  4. <link rel="stylesheet" href="http://dev.jquery.com/view/trunk/plugins/autocomplete/demo/main.css" type="text/css" />
  5. <link rel="stylesheet" href="http://dev.jquery.com/view/trunk/plugins/autocomplete/jquery.autocomplete.css" type="text/css" />
  6. <script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/autocomplete/lib/jquery.bgiframe.min.js"></script>
  7. <script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/autocomplete/lib/jquery.dimensions.js"></script>
  8. <script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/autocomplete/jquery.autocomplete.js"></script>
  9. <script>
  10. $(document).ready(function(){
  11. $("#query").autocomplete('search.php');
  12.  
  13. //$("result")
  14. });
  15. </script>
  16.  
  17. </head>
  18. <body>
  19. <input type="text" id="query" />
  20. <div id="result"></div>
  21. </body>
  22. </html>


search.php
  1. <?php
  2.  
  3. $q = $_GET['term'];
  4.  
  5. mysql_connect("localhost", "root","root");
  6. mysql_select_db("testing");
  7.  
  8. $query=mysql_query("select name from states where name like '$q'");
  9.  
  10. $data = array();
  11.  
  12. while($row = mysql_fetch_array($query)){
  13. $data[]=array('value'=>$row['name']);
  14.  
  15. }
  16. echo json_encode($data);
  17.  
  18. ?>
GameMaker
  1. Zamień $_GET['term'] na $_GET['q']


Bo wyświetlany błąd wskazuje , że w tablicy $_GET nie ma indexu term
gagatek
próbowałem tak i faktycznie pomogło, ale nie byłem pewien czy to dobrze zmieniłem. Dzieki:) Teraz mi to uświadomiłeś ale jest jeszcze ten drugi problem bo cokolwiek wpisze to w podpowiedzi pojawia mi sie tylko "[]" i nic wiecej... nie wiem czy nie pobiera z bazy, czy coś?
GameMaker
  1.  
  2. Ja bym troche innaczej napisał skrypt np :
  3.  
  4. ///tutaj sobie np importujesz klase obslugi bazy mysql
  5. ///$mysql - zadeklarowana klasa bazy
  6.  
  7.  
  8. if(!empty($_GET['q'])) {
  9. //pamiętaj aby przefiltrować $_GET['q']
  10.  
  11. $title = $_GET['q'];
  12. $mysql->query("SELECT id, title FROM mpa_movies WHERE title LIKE '%{$title}%' LIMIT 5");
  13.  
  14. $title = array();
  15. while($row = $mysql->fetch_array()) {
  16. $title[] = $row;
  17. }
  18. foreach($title as $key => $title) {
  19. echo $title['title']."\n";
  20. }
  21. }
  22.  
  23.  
gagatek
a czy nie ma jakiegoś innego sposobu? albo poprawy tego mojego kodu? jestem naprawdę bardzo zielony jesli chodzi o php itp, a potrzebuje bardzo tej wyszukiwarki...
marecki86
Wiesz co - też męczyłem się z tym tematem ostatnio baaardzo długo. Ale wkońcu coś wklepałem;) Spróbuj coś takiego:
CODE

<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" href="http://dev.jquery.com/view/trunk/plugins/autocomplete/demo/main.css" type="text/css" />
<link rel="stylesheet" href="http://dev.jquery.com/view/trunk/plugins/autocomplete/jquery.autocomplete.css" type="text/css" />
<script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/autocomplete/lib/jquery.bgiframe.min.js"></script>
<script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/autocomplete/lib/jquery.dimensions.js"></script>
<script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/autocomplete/jquery.autocomplete.js"></script>

<?php
mysql_connect("localhost", "root","root");
mysql_select_db("testing");

$query=mysql_query("select * from states");
while($dane=mysql_fetch_array($query))
{
$tablica1.=$dane['name'].'*';
}
?>

<script>
$(document).ready(function(){
var data1 =" <?php echo $tablica1;?>".split("*");
$("#query").autocomplete(data1, { matchContains: true, minChars: 1 });
</script>

</head>
<body>
<input type="text" id="query" />
<div id="result"></div>
</body>
</html>


U mnie działa - może Tobie pomoże:)

Dopler
dołączam się do tematu - bo próbuje robić to samo i mi nie wychodzi



1. W index.php
  1. <input type="text" value="" id="miejsceur" name="miejsceur" size="30"/>


2. W HEAD
załączenie jquery?.

  1. $(document).ready(
  2. function (){
  3. $("input#miejsceur?).autocomplete(?miasta.php?,
  4. {width: 200,max: 10,selectFirst: false, cacheLength: 1});
  5. }
  6. );


3. STYLE
po prostu skopiowane z poradników

4. PLIK miasta.php
  1. configfile...
  2. db= hasło itp...
  3.  
  4. $q = $_GET['q'];
  5. if(!$q) return;
  6.  
  7.  
  8. $mysql->query("SELECT id, nazwa FROM miejsca WHERE nazwa LIKE '%$q%'", $db);
  9.  
  10. $q = array();
  11. while($row = $mysql->fetch_array()) {
  12. $q[] = $row;
  13. }
  14. foreach($q as $key => $q) {
  15. echo $q['nazwa']."\n";
  16. }
  17. }


Niestety brak jest aktywności jakiejkolwiek. Tzn coś się dzieje, obwódka się podświelta i nie pokazują się typowe podpowiedzi przeglądarki. Ale brak jest listy.
Gdy trochę pozmieniam kod miasta.php i na końcu dopisuję (poza pętlą)
echo json_encode($q);
otrzymuję listę z jedną pozycją: null

UWAGA: adres strony głównej jest ze zmiennymi index.php?akcja=cośtam

poradziłem sobie jakoś - nie wiem czy dobrze - proszę o ewentualne poprawki

  1.  
  2. $q = $_GET['q'];
  3. $query=mysql_query("SELECT nazwa FROM miejsca WHERE nazwa LIKE '%$q%'", $db);
  4.  
  5. while($row = mysql_fetch_array($query)){
  6.  
  7. $data='';
  8. $data=$row['nazwa'];
  9. echo $data."\n";
  10. }
  11. }
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.