Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][AJAX]wczytanie danych do pętli
Forum PHP.pl > Forum > Przedszkole
phpuser88
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)
trueblue
Na pewno id elementu ma być unikalne, więc nie może być więcej elementów z id="subkomentarze".
phpuser88
No taaak... a ja wyświetlam id w pętli... dzięki wielkie! gdy się zbyt długo siedzi przed monitorami łatwo o niedopatrzenie.
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.