Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]polaczenie Autocomplete z baza
gagatek
post 2.11.2011, 16:53:05
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


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. ?>


Ten post edytował gagatek 2.11.2011, 16:57:05
Go to the top of the page
+Quote Post
GameMaker
post 2.11.2011, 16:56:31
Post #2





Grupa: Zarejestrowani
Postów: 149
Pomógł: 2
Dołączył: 31.01.2010
Skąd: Konstancin-Jeziorna

Ostrzeżenie: (0%)
-----


  1. Zamień $_GET['term'] na $_GET['q']


Bo wyświetlany błąd wskazuje , że w tablicy $_GET nie ma indexu term

Ten post edytował GameMaker 2.11.2011, 16:57:29


--------------------
Movie CMS v 0.1 - Postęp 37 45 49 53 69 %
Go to the top of the page
+Quote Post
gagatek
post 2.11.2011, 17:15:23
Post #3





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


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ś?

Ten post edytował gagatek 2.11.2011, 17:15:52
Go to the top of the page
+Quote Post
GameMaker
post 2.11.2011, 17:27:00
Post #4





Grupa: Zarejestrowani
Postów: 149
Pomógł: 2
Dołączył: 31.01.2010
Skąd: Konstancin-Jeziorna

Ostrzeżenie: (0%)
-----


  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.  


--------------------
Movie CMS v 0.1 - Postęp 37 45 49 53 69 %
Go to the top of the page
+Quote Post
gagatek
post 2.11.2011, 17:58:29
Post #5





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


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...
Go to the top of the page
+Quote Post
marecki86
post 6.11.2011, 17:56:51
Post #6





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 23.10.2011

Ostrzeżenie: (0%)
-----


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:)

Go to the top of the page
+Quote Post
Dopler
post 11.04.2014, 11:45:03
Post #7





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 30.01.2008

Ostrzeżenie: (0%)
-----


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. }


Ten post edytował Dopler 11.04.2014, 10:49:43


--------------------
Genealogia Polaków
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 23:45