Tak wysyłam:
while(xxx){ if($ILOSC_SUBKOMENTARZY['COUNT(id_subkom)']==true){ 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 } } <script type="text/javascript"> $(document).ready(function(){ $(".subkomennt").click(function(){ let currentComment = $(this).closest('[data-element="subkom"]'); $.ajax({ type: "POST", url: "subkomentarze.php", dataType: "text html", headers: { "Content-Type": "application/x-www-form-urlencoded", "Access-Control-Allow-Methods": "POST" }, data: { id_subkom: currentComment.attr('data-idkom'), rodzaj: currentComment.attr('data-ilekom'), csrf: $.Cookie("csrf") } }).done(function(data) { console.log(data); $('#subkomentarze').load('subkomentarze.php'); </script>
Tak odbieram i przetwarzam:
$ID = (int)$_POST['id_subkom']; $rowsubkom1="SELECT * FROM `komentarze` WHERE `id_subkom`=".$ID." ORDER BY ocenakom DESC LIMIT 100"; if($resultsubkom = mysqli_query($con, $rowsubkom1)) { while($rowsubkom = mysqli_fetch_assoc($resultsubkom)) { } }
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)