Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][AJAX]wczytanie danych do pętli
phpuser88
post 22.05.2022, 02:29:10
Post #1





Grupa: Zarejestrowani
Postów: 66
Pomógł: 1
Dołączył: 4.05.2019
Skąd: PHP5.6

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


Chciałbym wczytać za pomocą AJAX'a odebrane dane, które są wyświetlane w pętli while().
Tak wysyłam:
  1. while(xxx){
  2. if($ILOSC_SUBKOMENTARZY['COUNT(id_subkom)']==true){
  3.  
  4. echo '<a href="#komentarzee" class="subkomennt" style="margin-left:10%;color:#999;" data-element="subkom" data-idkom="'.$rowkom['id'].'" data-ilekom="'.$ILOSC_SUBKOMENTARZY['COUNT(id_subkom)'].'"> wyświetl '.$ILOSC_SUBKOMENTARZY['COUNT(id_subkom)'].' odpowiedzi</a>'; //za pomocą tego linku wysyłam dane AJAX'em do PHP, które w kolejnej pętli while() wyświetla odpowiednie subkomentarze
  5.  
  6. echo '<div id="subkomentarze"></div>';
  7.  
  8. }
  9. }
  10. <script type="text/javascript">
  11. $(document).ready(function(){
  12. $(".subkomennt").click(function(){
  13. let currentComment = $(this).closest('[data-element="subkom"]');
  14. $.ajax({
  15. type: "POST",
  16. url: "subkomentarze.php",
  17. dataType: "text html",
  18. headers:
  19. {
  20. "Content-Type": "application/x-www-form-urlencoded",
  21. "Access-Control-Allow-Methods": "POST"
  22. },
  23. data: {
  24. id_subkom: currentComment.attr('data-idkom'),
  25. rodzaj: currentComment.attr('data-ilekom'),
  26. csrf: $.Cookie("csrf")
  27. }
  28. }).done(function(data) {
  29. console.log(data);
  30. $('#subkomentarze').load('subkomentarze.php');
  31. </script>

Tak odbieram i przetwarzam:
  1.  
  2. $ID = (int)$_POST['id_subkom'];
  3. $ID = substr($ID,0,6);
  4.  
  5. $rowsubkom1="SELECT * FROM `komentarze` WHERE `id_subkom`=".$ID." ORDER BY ocenakom DESC LIMIT 100";
  6. if($resultsubkom = mysqli_query($con, $rowsubkom1)) {
  7. while($rowsubkom = mysqli_fetch_assoc($resultsubkom)) {
  8. echo subkomentarz();
  9. }
  10. }

Generalnie w logach przeglądarki dane są pobierane prawidłowo dla każdego kliknięcia by wyświetlić właściwe subkomentarze, ale źle się to wyświetla tzn. jeśli klikne na jakikolwiek link aby wyświetlić subkomentarze, to wyświetlą się subkomentarze tylko dla pierwszego komentarza z subkomentarzami. Gdy spróbuję kliknąć w link aby wyświetlić subkomentarze dla drugiego komentarza, to nic się nie wyświetla mimo, że w logach dane odbierane są prawidłowo. Pewnie dzieje się tak przez wyświetlanie w pętli? Próbowałem wczytywać plik subkomentarze.php za pomocą include() zamiast .load('subkomentarze.php');, ale to jeszcze gorszy pomysł. Jak poprawnie to ogarnąć, aby wczytać subkomentarze (po klinięciu w link "wyświetl subkomentarze") dla danego komentarza za pomocą AJAX'a? albo nawet za pomocą PHP, ale bez używania $_GET/$_POST? (o ile to możliwe)

Ten post edytował phpuser88 22.05.2022, 02:32:20
Go to the top of the page
+Quote Post
trueblue
post 22.05.2022, 07:07:56
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Na pewno id elementu ma być unikalne, więc nie może być więcej elementów z id="subkomentarze".


--------------------
Go to the top of the page
+Quote Post
phpuser88
post 22.05.2022, 12:01:16
Post #3





Grupa: Zarejestrowani
Postów: 66
Pomógł: 1
Dołączył: 4.05.2019
Skąd: PHP5.6

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


No taaak... a ja wyświetlam id w pętli... dzięki wielkie! gdy się zbyt długo siedzi przed monitorami łatwo o niedopatrzenie.
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: 28.03.2024 - 21:49