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ę.
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
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?
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_przygotowac_php_do_obslugi_zadan_xhr_json%3F
https://prophp.pl/advice/show/20/pierwsze_kroki_z_ajax._jak_dziala_i_czym_jest%3F
https://prophp.pl/article/18/fetch_api_-_nastepca_xmlhttprequest
I coś podobnego do tego co chcesz osiągnąć: https://prophp.pl/article/29/obsluga_sesji_w_php_oraz_zadan_xhr_na_przykladzie_koszyka_produktow
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?
Ja stosuję takie coś:
$('body').on('click', '#IdKliknietegoButtonu', function() { var that = $(this); if ((that.data('inprogress') || 0) == 1) { return false;} $.ajax({ type : "GET", dataType : "json", url : "adresDoPlikuKtoryWykonujeAkcje/"+$(this).attr('num'), beforeSend: function() { that.data('inprogress', 1); }, }).done(function( data ) { that.data('inprogress', 0); $("#idDivaDoKtoregoChceszZaladowacTresc_wynikJson").html(data.wynikOdebrnayZJson); }).fail(function(jqXHR, textStatus, errorThrown) { that.data('inprogress', 0); alert(textStatus); }); });
Po co używasz bąbelkowania dla elementu z identyfikatorem?
No tak napisałem tylko
Ja mam tam nazwę diva
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)