Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] dynamiczne filtrowanie
Forum PHP.pl > Forum > Po stronie przeglądarki
john_doe
Witam,

mam tabele z produktami.
na stronie wstawiłem input text i pustego diva o jakims id. Chciałbym na onKeyUp aby pojawiały się nazwy produktów w zależności od tego co wpiszę w tym pustym divie.
Robie to w Ci i oto co zrobiłem:
1. mam controller który wywołuje widok z tym inputem i pustym divem
2. w modelu mam metodę getProducts z opcja like '%tutajToCoWpiszewInput%'
3. stworzyłem w controlerze dodatkową metodę która odbiera post i wczytuje widok z produktami

I lekko się zatrzymałem bo mam problem z jQuery

  1.  
  2. $.post
  3. (
  4. 'sciezka gdzie wysylam posta czyli do pktu 3',
  5.  
  6. {
  7. nazwaPosta: wartoscPosta
  8. },
  9.  
  10. function(response){
  11.  
  12. //tutaj jeszcze czyszczenie diva by sie przydało chyba
  13.  
  14. $('#mojDiv').load('tutaj nie moge dac odwołania do pkt 3 bo post jest pusty')
  15. }
  16.  
  17.  
  18. )
  19.  


zagubiłem się w koncepcji jak to zrobić.

rocktech.pl
Witam.

3. Niech widok produktów zwraca JSON. I zamiast load parsuj sobie obiekt przy pomocy http://api.jquery.com/jquery.tmpl/.

john_doe
brzmi nieźle smile.gif
możesz mnie jeszcze wesprzeć jakimś kodem lub pseudokodem?
rocktech.pl
To lecimy z przykładu.

[JAVASCRIPT] pobierz, plaintext
  1. var markup = "<li><b>${klucz}</b> (${klucz2})</li>";
  2.  
  3.  
  4. $.template( "productTemplate", markup );
  5.  
  6. $.ajax({
  7. dataType: "jsonp",
  8. url: 'sciezka gdzie wysylam posta czyli do pktu 3',
  9. jsonp: "$callback",
  10. success: showProducts
  11. });
  12. function showProducts( data ) {
  13. $.tmpl( "productTemplate", data )
  14. .appendTo( "#mojDiv" );
  15. }
[JAVASCRIPT] pobierz, plaintext
john_doe
ok dzięki bardzo ale teraz abym bezmyślnie w to nie patrzył i nie kopiował

z jednej motody controlera ajaxem śle post do innej metody controllera, która wywołuję funkcję z modelu getProducts i wczytuję widok. Widok zwraca coś takiego ( jak narazie )

  1. foreach($products as $product)
  2. {
  3. echo $product->product_name . '<br />';
  4. }


jak mam rozumieć zmienną markup w Twoim przykładzie?


wiesz za chwilę jak to zadziała to to co zwraca ten widok chciałbym mieć w postaci diva wewnątrz niego fotka, tytuł i krótka treść.

rocktech.pl
Zmienna markup to ma posłużyć ci do parsowania JSON'a {klucz} w templatce to klucze tablicy z data (obiekt JSON).

getProducts() niech zwraca:

  1. echo json_encode($product);


Zobacz co ci zwróci.
[JAVASCRIPT] pobierz, plaintext
  1. $.getJSON('url gdzie produkty', function(data) {
  2. console.log(data)
  3. });
[JAVASCRIPT] pobierz, plaintext


Myślę, że z tego pseudo kodu złożysz już coś działającego smile.gif
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.