Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [AJAX][PHP]System wystawiania opinii na stronie - użyć czysty PHP czy AJAX
Bednarus3
post 13.06.2018, 12:15:39
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 21.12.2010

Ostrzeżenie: (0%)
-----


Moja firma organizuje rajd na orientację. Zrobiłem formularz zgłoszeniowy. Chcę teraz zrobić stronę do wystawiania opinii. Na stronie ma się pojawić formularz z dwoma polami: nazwa wprowadzającego oraz treść opinii, a poniżej wcześniej dodane opinie przechowywane w bazie MySQL. Sklecić kod raczej dam radę. Zastanawiam jak to zrobić, żeby było ładnie. Pisać w czystym PHP czy możę AJAX + PHP? Ewentualnie inne rozwiązania. Ale obsługa zapytań do bazy musi być w PHP, bo inaczej nie potrafię.
Go to the top of the page
+Quote Post
nospor
post 13.06.2018, 12:18:56
Post #2





Grupa: Moderatorzy
Postów: 34 226
Pomógł: 5672
Dołączył: 27.12.2004




Mozesz pisac w samym php mozesz pisac w php i ajax. Jak ci wygodniej. Z ajaxem teoretyczniej powinno to wygladac lepiej ale to tez zalezy od programisty wink.gif


--------------------

Najlepsze kawałki programistyczne || Dowcipy o informatykach || Forum PHP dla opornych
Klasy: Pager (stronicowanie) | Cache | ShoutBox (Chat) | Widok | Ładne url'e

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Bednarus3
post 13.06.2018, 13:16:35
Post #3





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 21.12.2010

Ostrzeżenie: (0%)
-----


Myślę, że AJAX + PHP bym ogarnął. Już tam sobie coś napisałem. Na stronie będą dwa zdarzenia:
1. pobranie i wyświetlenie wszystkich komentarzy pod formularzem po załadowaniu strony.
2. dodanie nowej opinii po wysłaniu.
Teraz się zastanawiam, czy wysyłać metodą GET lub POST informację jakie to jest zdarzenie, sprawdzić w PHP, odesłać odpowiedź, czy może zrobić dwa skrypty PHP do obsługi każdego zdarzenia.
Jeszcze jedno pytanie. Czy lepiej całość przetwarzać w PHP, zwrócić gotowy kod html i za pomocą XMLHttpRequest.responseText i DOM wstawić do jakiegoś diva, czy odpowiedź parsować w javascript?

Ten post edytował Bednarus3 13.06.2018, 14:09:55
Go to the top of the page
+Quote Post
viking
post 13.06.2018, 16:12:09
Post #4





Grupa: Zarejestrowani
Postów: 4 966
Pomógł: 837
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Nie ma znaczenia czy jeden, czy dwa. Możesz dodać parametr do żądania typu zdarzenie: 1 lub zdarzenie:2 i na tej podstawie weryfikować i odsyłać coś innego. Jeśli czujesz się na siłach żeby przeparsować odpowiedź np JSON w JS to możesz tak to zrobić. Poczytaj wcześniej:
https://prophp.pl/advice/show/17/jak_przygo...dan_xhr_json%3F
https://prophp.pl/advice/show/20/pierwsze_k..._i_czym_jest%3F
https://prophp.pl/article/18/fetch_api_-_na..._xmlhttprequest

I coś podobnego do tego co chcesz osiągnąć: https://prophp.pl/article/29/obsluga_sesji_...szyka_produktow


--------------------
Go to the top of the page
+Quote Post
Bednarus3
post 14.06.2018, 13:06:36
Post #5





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 21.12.2010

Ostrzeżenie: (0%)
-----


Po lekturze artykułów z powyższego postu, wybór padł na AJAX + JSON.
A w jaki sposób umieszczać przeparsowaną zawartość w danym elemencie? Poprzez element.innerHTML czy element.appendChild?

Ten post edytował Bednarus3 14.06.2018, 14:01:40
Go to the top of the page
+Quote Post
miccom
post 24.06.2018, 10:36:39
Post #6





Grupa: Zarejestrowani
Postów: 341
Pomógł: 3
Dołączył: 7.07.2007
Skąd: Tychy

Ostrzeżenie: (0%)
-----


Ja stosuję takie coś:

  1. $('body').on('click', '#IdKliknietegoButtonu', function() {
  2. var that = $(this);
  3. if ((that.data('inprogress') || 0) == 1) { return false;}
  4. $.ajax({
  5. type : "GET",
  6. dataType : "json",
  7. url : "adresDoPlikuKtoryWykonujeAkcje/"+$(this).attr('num'),
  8. beforeSend: function() {
  9. that.data('inprogress', 1);
  10. },
  11. }).done(function( data ) {
  12. that.data('inprogress', 0);
  13. $("#idDivaDoKtoregoChceszZaladowacTresc_wynikJson").html(data.wynikOdebrnayZJson);
  14. }).fail(function(jqXHR, textStatus, errorThrown) {
  15. that.data('inprogress', 0);
  16. alert(textStatus);
  17. });
  18. });


Ten post edytował miccom 24.06.2018, 10:38:18


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
Go to the top of the page
+Quote Post
SmokAnalog
post 24.06.2018, 11:01:57
Post #7





Grupa: Zarejestrowani
Postów: 1 464
Pomógł: 235
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Po co używasz bąbelkowania dla elementu z identyfikatorem?
Go to the top of the page
+Quote Post
miccom
post 24.06.2018, 12:02:50
Post #8





Grupa: Zarejestrowani
Postów: 341
Pomógł: 3
Dołączył: 7.07.2007
Skąd: Tychy

Ostrzeżenie: (0%)
-----


No tak napisałem tylko smile.gif
Ja mam tam nazwę diva


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 22.10.2018 - 11:48