Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][AJAX][SMARTY] Ajax i smarty przebudowanie szablonu lub include
Forum PHP.pl > Forum > Przedszkole
XP'ek
Witajcie,

potrzebuję zrobić element który będzie dynamiczny w szablonach smarty. Dokładniej chodzi mi o czat i nie wiem jak to zrobić... można jakoś odświeżyć includowany plik lub wczytywać zmienną z odświeżaniem jej questionmark.gif Może ktoś już coś takiego robił i może mnie nakierować ?
lobopol
Opcji masz kilka, ale najprościej będzie Ci zaimplementować coś takiego z użyciem ajax, na stronie co jakiś cza/zdarzenie pobierasz informacje z serwera i za pomocą javascriptu dopisujesz je do kontenera w którym masz zawarty chat. Zobacz przykładowe implementacje https://github.com/search?q=ajax+chat&ref=cmdform
XP'ek
zrobiłem przeładowanie całego #content przy pomocy load. Stworzyłem contr. Ajax z publiczną funkcją czat wchodzi i wczytuje /ajax/czat natomiast pliki js nie działają już do niego tak jak było na początku mam na myśli kasowanie itd. i jest to troszkę mało efektowne ...


więc tak odpuściłem smarcza przy wykonywaniu i opieram swoje zapytanie na podstawie pobierania printowanej listy z adresu natomiast po pierwszym odświeżeniu listy przez ajax już nie działa ikonka usuwania i edycji ...

js odświeżania
Kod
    function ajax_czat() {                                      
        $.ajax({
          url: "/ajax/czat.html",
          async: true,
          type: "GET",
          data: "",
          dataType: "html",
          success: function(data) {
            $('#czat').html(data);
            $("#loader").html("");
          }
        });
    }

i kod js'a odpowiedzialny za usuwanie
Kod
    $('a.coquette16-delete').on('click', function(){
        var id =($(this).attr('data-item')); //#id ukrytego input, val() czyli wpisz wartość.
        var url = "/czat/remove.html";                                                    
        $(document).ajaxStart(function() {
            notify('Ładowanie... ', "Trwa usuwanie wpisu.", {
                icon: '/templates/blue/img/icon/coquette/32x32/info.PNG'
            });    
            $("#loader").html("<img src='/templates/blue/img/loading/ajax-loader.gif'> Trwa ładowanie zawartości.");                  
        });                                                              
                                                                      
        $.ajax({
            url: url,
            type: "POST",
            dataType: 'json',
            data: {
                "date[id]":id
            },  
            success: function(response) {
                console.log(response);  
                if (response.status == 'ok') {                                  
                    notify('SUKCES', "Wpis usunięty.", {
                        icon: '/templates/blue/img/icon/coquette/32x32/accept.png'
                    });                      
                    ajax_czat();  
                } else{                                    
                    notify('ERROR', "Podczas usuwania wystąpił niespodziewany błąd.", {
                        icon: '/templates/blue/img/icon/coquette/32x32/warning.png'
                    });  
                }    
            },
          error: function(){                                  
            notify('ERROR', "Podczas usuwania wystąpił niespodziewany błąd.", {
                icon: '/templates/blue/img/icon/coquette/32x32/warning.png'
            });  
          }
        });                
    });


kod php wygląda na zasadzie pobrania listy następnie pętla robi tr'ki i wstawiane są do tabeli czat
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.