Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [javaScript][Ajax] Problem ze zmiennymi
djluzak
post
Post #1





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 12.03.2004
Skąd: Kraków

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


Nie wiem czy to dobry dział, poniewaz moj problem wiąże się głownie z JS, ale także z Ajaxem.

Mam taki kod:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3.  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Ajax Auto Suggest</title>
  6.  
  7. <script type="text/javascript" src="jquery.js"></script>
  8. <script type="text/javascript">
  9. function lookup1(imie) {
  10. if(imie.length == 0) {
  11. $('#suggestions1').hide();
  12. } else {
  13. $.post("rpc.php", {queryString1: ""+imie+""}, function(data){
  14. if(data.length >0) {
  15. $('#suggestions1').show();
  16. $('#autoSuggestionsList1').html(data);
  17. }
  18. });
  19. }
  20. }
  21.  
  22. function fill(thisValue) {
  23. $('#imie').val(thisValue);
  24. setTimeout("$('#suggestions1').hide();", 200);
  25. }
  26. <script type="text/javascript">
  27.  
  28. function lookup2(nazwisko) {
  29. if(nazwisko.length == 0) {
  30. $('#suggestions2').hide();
  31. } else {
  32. $.post("rpc.php", {queryString2: ""+nazwisko+""}, function(data){
  33. if(data.length >0) {
  34. $('#suggestions2').show();
  35. $('#autoSuggestionsList2').html(data);
  36. }
  37. });
  38. }
  39. }
  40.  
  41. function fill(thisValue) {
  42. $('#nazwisko').val(thisValue);
  43. setTimeout("$('#suggestions2').hide();", 200);
  44. }
  45.  
  46. </head>
  47.  
  48. <input id="imie" onkeyup="lookup1(this.value);" onblur="fill();" type="text" name="imie" class="formn">
  49. <div class="suggestionsBox1" id="suggestions1" style="display: none;"><div class="suggestionList" id="autoSuggestionsList1"> </div>
  50.  
  51. <input id="nazwisko" onkeyup="lookup2(this.value);" onblur="fill();" type="text" name="nazwisko" class=formn >
  52. <div class="suggestionsBox" id="suggestions2" style="display: none;"><div class="suggestionList" id="autoSuggestionsList2"> </div></td></tr>
  53.  
  54.  
  55. </body>
  56. </html>


Wiele kodu opuscilem, ale to nie jest tu wazne. Chodzi o to, ze skrypt ten oparty na jquery wyswietla autouzupelnianie pola imie i nazwisko z bazy myqsl.
Samo wyswietlanie podpwoiedzi mi dziala, tylko cos mam nie tak z ta czescia kodu:

  1. function fill(thisValue) {
  2. $('#imie').val(thisValue);
  3. setTimeout("$('#suggestions1').hide();", 200);
  4. }
  5.  
  6. <input id="imie" onkeyup="lookup1(this.value);" onblur="fill();" type="text" name="imie" class="formn">


a dokladnie dwoma pierwszymi linijkami.

Gdy wybiore z listy imie to wpisuje mi go do pola nazwisko, a nazwisko wpisuje tez do pola nazwisko.
Co bym nie zmienil zawsze imie i nazwisko mam w tym samym polu.

Czy ktos jest mi w stanie pomoc?
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




po pierwsze: fill() wymaga parametry thisValue, a ty przy wowolaniu go nie podajesz
po drugie: dwa razy deklarujesz fill(), raz dla imie, raz dla nazwisko. To nazwisko nadpisuje ci pierwszą definicje

po trzecie i najwazniejsze:
http://bassistance.de/jquery-plugins/jquer...n-autocomplete/

Nie wywazaj otwartych juz drzwi (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
piotrooo89
post
Post #3


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




prosze gotowy skrypcik +opis. klik
Go to the top of the page
+Quote Post
djluzak
post
Post #4





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 12.03.2004
Skąd: Kraków

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


Dzieki koledzy. Wlasnie taki skrypcik znalazlem, bo nie moglem sobie poradzic ze skryptem autocomplete, a konkretniej z wdrozeniem myslq-a. Nie wiem jak polaczyc JS z SQL. Problem tkwi w tym, ze nie znam JS.

Mam dwie funkce fill i jedna nadpisuje druga, ale czy da sie to jakos ominac? Tak, zeby fill wiedzial gdzie ma wstawic jakie dane. Czy poprostu nie da sie jakiejs innej funkcji uzyc zamiast fill,. zeby wypelnic te dwa pola?

Dzieki koledzy za skrypty, jak z tym mi sie nie uda bede walczyl z innymi.

Aha, gdy podam parametr thisValue do filla to i tak nic sie nie zmienia. Zawsze mam wszystko w polu nazwisko.

Ten post edytował djluzak 16.12.2008, 14:01:29
Go to the top of the page
+Quote Post
piotrooo89
post
Post #5


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




w tym co ja Ci dałem skrypt wykorzysuje dane z bazy... wysarczy przerobić na swoje potrzeby, ale jak patrzyłem na to co Ci ~nospor przesłał to również jest ciekawa pozycjia.
Go to the top of the page
+Quote Post
djluzak
post
Post #6





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 12.03.2004
Skąd: Kraków

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


Ten skrypt autocomplete ma bardzo duze mozliwosci, ale ja sobie nie poradze z wdrozeniem sqla do js.
Drugi skrypt jest duzo protszy w zastosowaniu.

Na ta funkcje fill stracilem juz z 3 godziny i nic....
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Ten skrypt autocomplete ma bardzo duze mozliwosci, ale ja sobie nie poradze z wdrozeniem sqla do js.

A cos ty sie uczepil tego sqla w js?
W js masz tylko js. Dla autocomplete podajesz adres skryptu, ktory ci bedzie wypluwal dane. To jest zwykly php, a z php juz chyba sobie poradzisz?
Go to the top of the page
+Quote Post
djluzak
post
Post #8





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 12.03.2004
Skąd: Kraków

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


Wlasnie nie wiem czy dam rade.

W tamtym skrypcie mialem cos takiego (rpc.php):

  1. <?php
  2. $sql = mysql_connect("localhost", "root", "aaaaa") or die("Connection error: ".mysql_error());
  3. mysql_select_db("xyz", $sql) or die("Unable to select the database: ".mysql_error());
  4.    
  5. if(isset($_POST['queryString'])) {
  6.          
  7.    $queryString = $_POST['queryString'];
  8.            
  9.        if(strlen($queryString) >0) {
  10.        
  11.            $query = mysql_query("SELECT distinct imie FROM cos_tam WHERE imie LIKE '$queryString%' LIMIT 10");
  12.            $dane = mysql_num_rows($query);
  13.                
  14.            if($dane<>NULL) {
  15.                    
  16.            while($row = mysql_fetch_array($query)) {
  17.            echo '<li onClick="fill(''.$row['imie'].'');">'.$row['imie'].'</li>';
  18.            }
  19.            }
  20.        }
  21. }
  22. ?>


w wywoływało się to za pomocą:

  1. $.post("rpc.php", {queryString: ""+imie+""}, function(data)


A tu zupelnie nie wiem....czasem ogarnia mnie taka niemoc....nagle ci sie wszystko miesza.

W autocomplete mam funkcje:
  1. $("#suggest1").autocomplete(cities, cos tam);


I to autocomplete(cities,cos tam) pobiera nazwy miast, wiec co mam napisac?

  1. autocomplete('jakis_plik.php',cos tam)
?

I w tym pliku php napisac cos takiego jak mam wyzej?

Sorki, ze zamieszalem.

Wazne dla mnie jest jeszcze w jakiej postaci plik php ma zwrocic dane - przez echo?

Ten post edytował djluzak 16.12.2008, 14:34:17
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




skrypt php ma zwrocic dane w postaci:
Kod
rekord1
rekord2
rekord3
...

gdzie rekord to poprostu jakis tekst, jaki ma byc zwrocony dla podpowiedzi
Są też wersje rozszerzone, ale to juz inna bajka i nie na ten etap Twojej wiedzy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
djluzak
post
Post #10





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 12.03.2004
Skąd: Kraków

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


Dzieki wielkie kolego, juz sobie z tym poradziłem, jak narazie w wersji podstawowej wyswietlania listy.
Teraz probuje to wcisnac do mojego kodu. Jednak ten skrypt jest bardziej skomplikowany, ale prostszy w uzyciu.

Zapomnialem o najwazniejszym: jak pozbyc sie krzaczkow z polskiej czcionki? Kodowanie strony mam odpowiednie, ale pokazują mi sie znaczki typu ����

Ten post edytował djluzak 16.12.2008, 15:16:09
Go to the top of the page
+Quote Post
nospor
post
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Jednak ten skrypt jest bardziej skomplikowany, ale prostszy w uzyciu.

Albo skomplikowany, albo prosty. Zdecyduj sie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Cytat
ak pozbyc sie krzaczkow z polskiej czcionki? Kodowanie strony mam odpowiednie, ale pokazują mi sie znaczki typu ����

O krzakach bylo nie raz na forum, wystarczy poszukac.

Oprocz kodowania strony, musisz tez miec wlasciwe kodowanie bazy i wlasciwe kodowanie pliku php.
Go to the top of the page
+Quote Post
djluzak
post
Post #12





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 12.03.2004
Skąd: Kraków

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


Juz udalo mi sie zmienic kodowanie strony oraz pliku i czcionka jest OK.
Strona zostala zmieniona na UFT-8 bez BOM, a w skrypcie dodalem:

  1. header("Content-type: text/html; charset=iso-8859-2");
.

Dzieki za pomoc!
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 01:34