Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ajax+javascript] zbyt dużo danych
styx
post 25.08.2006, 08:01:43
Post #1





Grupa: Zarejestrowani
Postów: 138
Pomógł: 3
Dołączył: 21.11.2005

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


Pozdrawiam!

Na stronie mam <div-a> który zawiera <text> i <select>.
Gdy wpisuje jakieś znaki do <text-a> wywołuje funkcje sortuj() która zwraca do <select-a> efekt przeszukiwań bazy danych zawierających wprowadzoną frazę.

I tu pojawiaja się błędy:

1.Gdy fraza jest krótka zwiesza przeglądarkę.
2.Gdy reultat zapytania jest zbyt duży w treśći przeglądarki wyskakują krzaki.

Zpaytanie operuje na 14tys. rekordów

wywołanie funkcji:
  1. <?php
  2. print '<input type="text" style="width:160px;font-size:12;" onkeypress="sortuj(this.value);">';
  3. ?>


  1. function sortuj(wartosc)
  2. {
  3.  
  4. for (x=(document.getElementById("produkty"+maszyna).length-1);x>=0;x--)
  5. document.getElementById("produkty"+maszyna).removeChild(document.getElementById("produkty"+maszyna).options[x])
  6.  
  7. if (wartosc.length>3)
  8.  
  9. advAJAX.get({
  10. url: "plan/modyfikatory/pobierz_produkty.php",
  11. PHPSESSID : "<?php print session_id() ?>",
  12. ciag : wartosc,
  13. onSuccess : function(obj) {
  14.  
  15. tablica = new Array();
  16. ciagz = obj.responseText;
  17. i=0;
  18. while (ciagz.search(',')!=-1)
  19. {
  20. i++;
  21.  
  22. tablica[i]=ciagz.substr(0,ciagz.indexOf(','));
  23. ciagz = ciagz.substr((ciagz.indexOf(',')+1),ciagz.lastIndexOf(','));
  24.  
  25. }
  26.  
  27. document.getElementById("znl").innerHTML=tablica.length-1;
  28.  
  29.  
  30. for (licznik=1;licznik<tablica.length;licznik++)
  31. {
  32. nowy = document.createElement('option');
  33.  
  34. document.getElementById("produkty"+maszyna).appendChild(nowy);
  35. nowy.text=tablica[licznik];
  36. }
  37.  
  38.  
  39. }
  40. });
  41.  
  42. }



plik pobierz_produkty.php
  1. <?php
  2. include('../../connect.php');
  3.  
  4. $pierszy = 0;
  5. $query = "select id_produkt,kod_produkt from produkt where kod_produkt like '%$_GET[ciag]%'";
  6. $result = mssql_query($query);
  7. if ($result!=1)
  8.  while ($wiersz = mssql_fetch_array($result))
  9.  {
  10.  if ($pierszy==0)
  11.  {
  12. print $wiersz['kod_produkt'];
  13. $pierszy = 1;
  14. }
  15. else print ','.$wiersz['kod_produkt'];
  16.  }
  17. print ',';
  18. ?>


--------------------
"Istotne problemy naszego życia nie mogą być rozwiązane na tym samym poziomie myślenia, na jakim byliśmy kiedy je tworzyliśmy". A.Einstein
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: 2.05.2024 - 11:35