Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery][ajax] Wyświetlanie wyniku w divie
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
deha21
Z jQuery i ajaxa jestem kiepski wiec proszę o pomoc. Sprawa jest taka. Mam skrypt dodawania komentarzy. Chcę żeby po dodaniu komentarza w divie #dodajkomentarz przeładowała się strona na:
- dodano komentarz,
- nie wpisano treści,
- nastepny komentarz możesz dodać za 30 sekund

Oczywiście w zależności od sytuacji.
Na razie mam zrobione wysyłanie danych za pomocą ajaxa do pliku add.php gdzie komentarz jest dodawny do bazy danych. W tym pliku jest już wszystko porobione czyli dodaniwanie, wyświetlanie że nie wpisano treści itp. Tylko teraz trzeba zrobić tak, żeby wynik wysyłania był wyświetlany w divie. Chyba że jakoś inaczej to rozwiązać?

Teraz mam taki kod:
[JAVASCRIPT] pobierz, plaintext
  1. $("#dodaj").live("click",function(){
  2. var id=$("#id").val(); // id newsa
  3. var type=$("#type").val(); // typ - czy news czy artykuł, nie ważne w tym przypadku
  4. var comment=$("#comment").val(); // treść komentarza
  5. var nick=$("#nick").val(); // nick
  6.  
  7. $.ajax({
  8. type: "POST",
  9. url: "add.php",
  10. data: {id: id, type: type, nick: nick, comment: comment},
  11. success:function(){$("#dodajkomentarz").html("dodano")},
  12. });
  13.  
  14. return false;
  15.  
  16. });
[JAVASCRIPT] pobierz, plaintext


Pozdrawiam
mortus
Zwróć uwagę na linię 11. Funkcja może przyjąć parametr np. data, a wartością tego parametru będą dane zwrócone przez skrypt add.php. Możemy wtedy wstawić te dane do naszego div-a (linia 11)
Kod
success: function(data) { $("#dodajkomentarz").html(data); }
deha21
Tak myślałem, teraz pytanie ale jak zrobić żeby skrypt php wysyłał do jquery te info. Przez return w php? Nie działa.
mortus
Zwrócone dane mogą być dokumentem xml, html, tablicą json lub zwykłym tekstem. Zatem w pliku add.php wystarczy zwykłe echo 'Jakiś tekst'; i to będzie zawartość zmiennej data.
deha21
Domyślam się, ale php chyba musi jakoś wiedzieć że dane echo ma trafić akurat jako 'data'.
Bo teraz mam coś takiego (w skrócie):
  1. if (strlen($comment0) > 700) {
  2. echo "Komentarz jest za długi. Maksymalna ilość znaków to 700";
  3. } elseif (strlen($comment0) <10) {
  4. echo "Komentarz jest za krótki. Minimalna ilość znaków to 10";
  5. } else {
  6. // dodanie od bazy
  7. echo "Dodano";
  8. }


EDIT: Nie wiem co narobiłem ale zaczeło działać! biggrin.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.