Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][AJAX][PHP] System newsów, odświezanie
Forum PHP.pl > Forum > Przedszkole
Ivanowski
Witam. Chciałbym zrobić system newsów oraz pod wyświetlaniem ich przycisk, po nacisnieciu bedzie sie ładowalo wiecej newsów.
Problem z tym, że nie wiem jak mam zrobić kod PHP na ten przycisk. Mam funkcje na newsy, które będą się pojawiały zawsze [5 ostatnich] problem się pojawia co mam zrobić aby PHP wykryło ile mamy pokazanych newsów i dodawał kolejne 5.
Myślałem aby do pętli for [Która wyświetla newsy] dodał zmienna $iloscPokazanychNewsow i własnie nią posługiwał się w szukaniu. Czyli tam gdzie mam szukac kolejnych newsów dać "SELECT * FROM news LIMIT $iloscPokazanychNewsow,$iloscPokazanychNewsow + 5" i wyświetlić, i tu jest problem jak mam to zrobić aby przez AJAX wyświetlić stare posty + nowe posty.

Obecnie co mam:
index.php
  1. <section id="news">
  2. <? spisNewsow(); ?>
  3. <button id="nowePosty">Załaduj więcej</button>
  4. </section>

funkcje na newsy:
  1. function spisNewsow() {
  2. include('MYSQL BAZA DANYCH');
  3. $baza = new mysqli($adres,$user,$pass,$name_db);
  4. $lista = $baza->query("SELECT * FROM news ORDER BY ID DESC LIMIT 0,1");
  5. $ile = mysqli_num_rows($lista);
  6. $s = 0;
  7. for($i=1; $i <= $ile; $i++){
  8. $row = mysqli_fetch_array($lista, MYSQLI_NUM);
  9. echo<<<END
  10. <div class="news">WYSWIETLANE INFORMACJE O NEWSIE</div>
  11. END;
  12. $s ++;
  13. }
  14. }

Oraz kod, który będzie podłączony pod AJAX:
  1. <?
  2. include('MYSQL BAZA DANYCH');
  3. $baza = new mysqli($adres,$user,$pass,$name_db);
  4. $kolejneNewsy = $baza->query('SELECT * FROM news LIMIT '.$s.','.$s+5 .'');
  5. $ile = mysqli_num_rows($kolejneNewsy);
  6. for($i=1; $i <= $ile; $i++){
  7. $row = mysqli_fetch_array($lista, MYSQLI_NUM);
  8. echo<<<END
  9. <div class="news">WYSWIETLANE INFORMACJE O NEWSIE</div>
  10. END;
  11. $s ++;
  12. }
  13. ?>

Jeżeli jest dobrze zrobiony skrypt, to jak mam podpiąc to pod AJAX [Jquery] aby zadziałało jak powinno smile.gif
in5ane
Chcesz zrobić coś w stylu ładownia kolejnych komentarzy? Takie rzeczy musisz wykonać w JavaScript. Możesz użyć biblioteki jQuery i w niej wykonywać żądania Ajax. Musisz na przycisk (link, div, span, obojętnie co) dać akcję, aby po kliknięciu wysyłało żądanie do skryptu PHP, którym to zwrócisz następne komentarze (np. w formacie Json, który łatwo obsłużysz w JavaScript, aby załadować kolejne komentarze). Musisz również w jakiejś zmiennej (w skrypcie JavaScript) zapisywać ile już masz wyświetlonych komentarzy. Robiąc żądanie do skryptu PHP wysyłasz mu, ile już masz komentarzy - użyjesz tego w zapytaniu limitując ilość pobieranych komentarzy.

Przykład skryptu java script:
[JAVASCRIPT] pobierz, plaintext
  1. $('#showMoreComments').click(function() {
  2. $.ajax({
  3. url: "url do skryptu PHP, w którym również musisz podać, ile już masz komentarzy",
  4. dataType: "json",
  5. success: function(data) {
  6. // w data masz Json, który możesz wrzucić w pętlę i element po elemencie umieścić na stronie
  7. }
  8. });
  9. });
[JAVASCRIPT] pobierz, plaintext


W PHP odbierasz, ile już jest komentarzy. Np. ze zmiennej GET i tworzysz normalne zapytanie do bazy z odpowiednim limitem i offsetem. Następnie tworzysz np. tablicę z pobranymi komentarzami i wyświetlasz je jako json, dając na koniec "exit()". Resztę obsługuje się w JavaScript.
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.