Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] jQuery
Forum PHP.pl > Forum > PHP > Frameworki
piraciq

Mam taka sprawę w zedzie tak samo będzie się ładowało dane jak w przypadku php z pliku zewnętrznego?

mianowicie chcę zrobić slider przewijanego div`a z zawartością z bazy wybierane losowo. Przy php wszystko umieszczało się w osobnym pliku który był odpowiedzialny za zapytanie do bazy a następnie przy pomocy jQuery osadzane dane były w div`ie. a jak to teraz zrobić ? też na zewnętrznym pliku ? jeśli tak to jak wtedy z obsługą bazy ?

Pozdrawiam
k_@_m_i_l
Nie.
Zobacz, tutaj opisałem o context switch-u http://forum.php.pl/index.php?s=&showt...st&p=901258
Dla Ciebie tą różnicą będzie, że musisz utworzyć ajax context typu html, np.:
  1. $ajaxContext = $this->_helper->getHelper('AjaxContext');
  2. $ajaxContext->addActionContext('getimg', 'html')
  3. ->initContext();


Następnie Tworzysz w widokach nowy plik getimg.ajax.phtml (dopisek .ajax w nazwie pliku, wskazuje na plik który będzie wykorzystywany dla akcji getimg gdy będzie wczytywana przez ajaxa).
Teraz w akcji sobie obsługujesz normalnie i jak się połączysz przez ajaxa z akcją getimg, to szablon który będzie wyświetlony, to będzie getimg.ajax.phtml (dla zwykłej akcji wyświetli się getimg.phtml).
Dodatkowo, przy włączonym ajax contexcie dla danej akcji, przy ajaxowym requescie zf sam wyłącza layout, dzięki temu dostajemy tylko to co zawarte jest w pliku getimg.ajax.phtml.

edit:
Chociaż sie zastanawiam czy Tobie na pewno o przesyłanie ajaxem chodzi, bo czytając kilkukrotnie Twoją wypowiedź w końcu dochodzi się do wniosku że nie wiadomo o co chodzi.
piraciq
W taki razie piszę już jaśniej

Kod
<script type="text/javascript">
                function randomMain(){
                    var obj = jQuery(".randomMain:first");
                    var marginLeft = parseInt( jQuery(obj).css('marginLeft'));
                    jQuery(obj).css("marginLeft", ( marginLeft - 2 ) + "px" );
                    if( marginLeft < -380 ){
                        jQuery.get("main_ajax.php", '', function(data){
                            obj.remove();
                            jQuery(".randomMain:last").after( data );
                            jQuery(".randomMain:last").hide();
                            jQuery('.randomMain:last').fadeIn(500);
                            setTimeout("randomMain()", 2000 );
                        });
                    }else{
                        setTimeout("randomMain()", 25 );
                    }
                }
                jQuery(document).ready( function (){
                    randomMain(  );
                });
            </script>


prosty skrypt napisany z wykorzystaniem jQuery myślę, że nie trzeba tego objaśniać.

Jak widać na załączonym obrazku skrypt pobiera dane z pliku zewnętrznego "main_ajax.php" w którym to losowane są rekordy z bazy i przesuwane, i chciał bym osiągnąć podobny efekt tylko, że z zendem.

drPayton
W zalezności od potrzeby (konkretny skrypt, funkcjonalność itp itd) php ma zwrócić konkretne dane (np json). jQuery woła podany adres URL i nie ma dla niego znaczenia, czy podany został url bezpośrednio do pliku, czy też jakieś inne URI.

Więc odpowiedź na Twoje pierwsze pytanie brzmi: tak, będzie to działac identycznie, ino właściwy adres podaj i właściwie po stronie php'a to obsłuż wink.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.