I have a problem adding events from the javascript to php i echo using ajax.
session_start();
include "objects.php";
include "db.php";
$userId = $_SESSION['userId'];
$userName = $_SESSION['username'];
$html = '<h2 class="peopleHeader divSubContainer" id="peopleFriendsHeader" data-id ="peopleFriendsHeader"
data-target="peopleFriends" style="cursor:pointer" onclick=hideShowh2(this.getAttribute("data-id"),this.getAttribute("data-target"))>
Friends <button id="refreshButton"><i class="fa fa-refresh" style="font-size:24px"></i></button></h2>';
$html .= '<ul class="peopleFriends" id="peopleFriends">';
$query = "select * from user_status where userId = " . $userId;
$selectingData = new selectingData($query, $conn);
$result = $selectingData->getResult();
if (count(json_decode($result[0]['friends'])) > 0) {
foreach ($result as $r) {
$allFriends = json_decode(strtolower(stripslashes($r['friends'])));
foreach ($allFriends as $r2) {
$query = 'select * from chatsystemuser where userName ="' . $r2 . '"';
$selectingData = new selectingData($query, $conn);
$result = $selectingData->getResult();
foreach ($result as $r) {
$html .= "<li><p>" . $r2 . "</p><button data-target-user= '".$r['id']."' id='friendsMessageButton" . $r['id'] . "' class='btn friendsMessageButton'>MESSAGE
</button></li>";
}
}
}
} else {
$html .= "<h2> NO FRIENDS </h2>";
}
$html .= "</ul>";
echo $html;
This is my javascript ajax thatmake display to the browser.
function displayingFriends() {
var friends = $('.listOfFriends');
$.ajax({
url: "include/friends.php",
type: 'post',
datatype: 'html',
success: function (data) {
friends.html(data);
}
})
}
I try to select all data-target-modal but the closeButton variable is empty
function displayMessageModal() {
let closeButton = document.querySelectorAll('[data-target-modal]')
let overlay = document.querySelector('#overlay');
let friendsMessageButton = document.querySelectorAll('[data-target-user]');
console.log(closeButton)
friendsMessageButton.forEach(function (btn) {
var target = friendsMessageButton.closest('.messages');
btn.addEventListener('click', function () {
openDisplay(target);
console.log('clicked')
})
})
closeButton.forEach(function () {
var target = closeButton.closest('.messages');
closeButton.addEventListener('click', function () {
closeDisplay(target)
})
})
function closeDisplay(target) {
target.classList.remove('active');
overlay.classList.remove('active');
}
function openDisplay(target) {
target.classList.add('active');
overlay.classList.add('active');
}
}
$(function () {
displayingFriends()
displayMessageModal()
})
I want to select all button using data attributes. Sorry for my bad english im not really good at talking in english but i can understand it really well.