Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX] Shoutbox, zmiana wyświetlania wyników
Forum PHP.pl > Forum > XML, AJAX
tomekpl
Witam,
Wyszukałem w sieci shoutbox ajax.(Trudno nie było znaleźć)
http://webscripts.softpedia.com/script/Cha...Ajax-39032.html

No i tak:
- Shoutbox opiera się na pliku txt
- Dodałem opcje, że dodaje posty do bazy mysql, aby wyświetlać je w "Archiwum"
- Wartość teraźniejszą odczytuje w pliku txt

Skrypt jest podzielony na "odbierz" i "wyświetl"

Odbierz - Zapisuje post, user, data to txt
oraz do bazy mysql

Wyświetl - Wyświetla wyniki z pliku txt i tak:
Zmieniłem sortowanie, aby było odwrotnie, najnowsze wiadomości u góry i jest ok jak wejdziesz na strone, ale jak ktoś doda post to idzie na sam dół, i tu jest problem:

Nie wiem jak zrobić, aby wpisany post szedł zaraz na samą górę.

Wiem, że rozwiązanie problemu zajmie chwilkę czasu, ale z góry dziękuje. Jeżeli coś jest nie zrozumiałe to proszę pisać.

tutaj moja strona:
http://tv.dobryrap.pl/
shoutbox jest na dole
slammer
zapewne używasz AJAX do wpisania wiadomosci bezposrednio w okno shoutboxa... są dwie opcje winksmiley.jpg jak dodajesz tekst to pokombinuj z insertBefore. Druga opcja, pobieraj ajaxem całą zawartość pliku tektowego zaraz po tym jak wpisales do niego wartość i po prostu wczytuj respondTekst do okna shoutboxa.

ps.
Cytat(tomekpl @ 25.12.2008, 11:58:29 ) *
Zmieniłem sortowanie, aby było odwrotnie, najnowsze wiadomości u góry i jest ok jak wejdziesz na strone, ale jak ktoś doda post to idzie na sam dół, i tu jest problem:

nie wiem dokladnie o co chodzi i co tu sortować, problem sprowadza się do ustawienia odpowiedniej flagi w funkcji fopen winksmiley.jpg
tomekpl
To że czyta od " Ż do A " tylko że u mnie jest to data
rsort($arr);


case 'view':
$data = array();
$arr = file('messages.txt');

rsort($arr);
if(!$_GET['time'])
$_GET['time'] = 0;
foreach($arr as $row) {
$aTemp = null;
list($aTemp['time'], $aTemp['nickname'], $aTemp['message']) = explode('|', $row);
if($aTemp['message'] AND $aTemp['time'] > $_GET['time'])
$data[] = $aTemp;
}
//file_put_contents('debug.txt', print_r($data, true));
break;

Zaraz zobacze z tym InsertBefore.

Kod
    wrap: function() {
        // The elements to wrap the target around
        var a = jQuery.clean(arguments);

        // Wrap each of the matched elements individually
        return this.each(function(){
            // Clone the structure that we're using to wrap
            var b = a[0].cloneNode(true);

            // Insert it before the element to be wrapped
            this.parentNode.insertBefore( b, this );

            // Find the deepest point in the wrap structure
            while ( b.firstChild )
                b = b.firstChild;

            // Move the matched element to within the wrap structure
            b.appendChild( this );
        });
    },


Znalazłem taki kod smile.gif Powiem, że w ajax jestem na razie ciemny.

ps... trochę dłuższy ten kod jest... 60 pare kilo ma
jquery.js w plikach masz ta gdzie podalem link
slammer
acha jendak używasz tablicy file biggrin.gif



Widzę, że używasz jquery. W funkcji succes zamiast append daj 'Before', być może przyniesie oczekiwany rezultat .
tomekpl
jaki to plik ?
slammer
hmmm no sugerowałem się tym: http://docs.jquery.com/Manipulation/before. Tam wyżej dodałem zdjęcie z miejscem o które mi chodziło.To jest normalnie w indeksie wpisane.W firefox (ctr+u) i na sam dół zjedź
tomekpl
dodaje, ale jak sam widzisz ;] post pod postem
slammer
tym razem chodzi o sam selektor:
Kod
$('#daddy-shoutbox-list').before(prepare(response));

być może tak
Kod
$('#daddy-shoutbox-list div').before(prepare(response));
tomekpl
Dziękuję smile.gif yahoo.gif
slammer
nie ma sprawy biggrin.gif jeszcze proponuję to samo zrobić w funkcji refresh

Kod
$('#daddy-shoutbox-list').append(prepare(json[i]));

na
Kod
$('#daddy-shoutbox-list div').before(prepare(json[i]));
tomekpl
zrobilem i nie dziala

tak działa:
$('#daddy-shoutbox-list').append(prepare(json[i]));




tak nie działa:
$('#daddy-shoutbox-list').before(prepare(json[i]));

tak nie działa:
$('#daddy-shoutbox-list div').before(prepare(json[i]));

psssss
wie ktos questionmark.gif?
mhs
Nie wiem na ile jest to już aktualne, ale te dwie linie kodu maja wygladac w sposob nastepujacy:

Kod
$('#daddy-shoutbox-list').prepend(prepare(response));

$('#daddy-shoutbox-list').prepend(prepare(json[i]));


czyli append zmieniamy na prepend.
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.