Loading...
HTML, CSS, Javascript | jquery + php функция, вопрос..
Товарищи, как с помощью jquery передать функцию php на вывод? Я с помощью data атрибута передаю ID пользователя, в js я хочу использовать функцию login('+id_user'+, 1) но функция не срабатывает. ID передает но функция видит id=0
---
Атрибут передает id и выводит его но без функции.
А с функцией какая-то магия..
---
Мои знания js на минималках, так что не удивляйтесь если вопрос сформирован некорректно.
________
посл. ред. 17.03.2025 в 15:43; всего 1 раз(а); by Limon
$(function() {
$(".userinfo").click(function() {
var userid = $(this).attr('data-userid');
$(".infomain").append('<?= login("' + userid + '", "1") ?>');
});
});
Решение нашел только одно и оно кажется максимально топорным, это делать атрибут на каждый элемент, а их много.
Логин, возраст, онлайн, пол, аватар

Уверен есть куда более продуктивная реализация..
За помощь могу скинуть на кофе +)
________
посл. ред. 17.03.2025 в 15:52; всего 2 раз(а); by Limon
Похоже до меня дошло почему ID 0.
Потому что в функции выполняется запрос в БД на поиск пользователя по ID а в нашем случаи запрос не проходит т.к действие в модалке..
Это уже запрос к ajax нужно делать, верно я понял?
Limon (17 мар 2025, в 15:55)
Похоже до меня дошло почему ID 0.
Потому что в функции выполняется запрос в БД на поиск пользователя по ID а в нашем случаи запрос не проходит т.к действие в модалке..
Это уже запрос к ajax нужно делать, верно я понял?
Ты пытаешься выполнить в php js атрибут , по этому у тебя 0

Скинь полный код лучше , что именно пытаешься сделать и используй
бб код
[ hljs class="php"][/hljs ]
Не совсем, я через модальное окно передаю информацию о пользователе.
Принимаю с помощью кода:
$(function() {
$(".userinfo").click(function() {
var userid = $(this).attr('data-userid');
$(".infomain").append('<?= login("' + userid + '", "1") ?>');
});
});

---
Передаю только ID пользователя и в целом ид передается но вывести я его могу только как цифру (ID и есть цифра).
Если я выведу вот так: $(".infomain").append('<a href="/user.php?id=' + userid + '">Страница пользователя</a>');
То попаду на страницу пользователя ID который передался.
Но с помощью этого ID я хочу обращаться к функции логина в которой у меня полный набор вывода (Логин, ID, пол, город и т.д) т.к в окне не только ссылка будет а вся нужная информация о пользователе. Информация естественно транслируется с БД а поиск нужной и инфы о нужном пользователе идет по ID который я передаю в атрибут.
Сама проблема в срабатывании функции login();
Limon (17 мар 2025, в 16:23)
Не совсем, я через модальное окно передаю информацию о пользователе.
Принимаю с помощью кода:
$(function() {
$(".userinfo").click(function() {
var userid = $(this).attr('data-userid');
$(".infomain").append('<?= login("' + userid + '", "1") ?>');
});
});

---
Передаю только ID пользователя и в целом ид передается но вывести я его могу только как цифру (ID и есть цифра).
Если я выведу вот так: $(".infomain").append('<a href="/user.php?id=' + userid + '">Страница пользователя</a>');
То попаду на страницу пользователя ID который передался.
Но с помощью этого ID я хочу обращаться к функции логина в которой у меня полный набор вывода (Логин, ID, пол, город и т.д) т.к в окне не только ссылка будет а вся нужная информация о пользователе. Информация естественно транслируется с БД а поиск нужной и инфы о нужном пользователе идет по ID который я передаю в атрибут.
Сделай через ajax запрос и вывод куда надо
Например

$(function() {
$(".userinfo").click(function() {
var userid = $(this).attr('data-userid');
$.post(
'/api/us_info.php',

{
id: userid,
},
function(msg) {
$('#infomain').html(msg);
}
);
return false;
});
});



А по адресу уже выводить /api/us_info.php твою функцию login в ответ

Ты через js в php только так сможешь передать адекватно и вывести всю информацию которую тебе надо
________
посл. ред. 17.03.2025 в 16:41; всего 1 раз(а); by root
Limon ,
<a href="#" data-user-id="<?php echo filter_var($id, FILTER_VALIDATE_INT); ?>">User Information</a>
<script>
document.addEventListener('click', function (event) {
if (!event.target || !event.target.dataset.userId) {
return;
}

event.preventDefault();

fetch('/location/endpoint.php', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
id: event.target.dataset.userId
})
})
.then((response) => response.json())
.then((response) => {
console.log(response)
})
})
</script>

________
посл. ред. 17.03.2025 в 18:06; всего 1 раз(а); by mrcatoff
Или же используя jQuery
<a href="#" data-user-id="<?php echo filter_var($id, FILTER_VALIDATE_INT); ?>">User Information</a>
<script>
(function ($) {
$(document).on('click', '[data-user-id]', function (event) {
event.preventDefault();

$.ajax({
method: "POST",
url: '/location/endpoint.php',
data: {
id: this.dataset.userId
}
}).done((response) => {
console.log(response)
})
})
})(jQuery);
</script>

________
посл. ред. 17.03.2025 в 18:10; всего 1 раз(а); by mrcatoff
Онлайн: 2
Время: 05:16:54
Gen. 0.0772
(c) ByMAS.RU 2010-2025